您的位置:首页 > 其它

hibernate Criteria 的使用

2012-12-05 14:49 363 查看
方法
说明
Restrictions.eq

Restrictions.allEq
利用Map来进行多个等于的限制
Restrictions.gt

Restrictions.ge
>=
Restrictions.lt

Restrictions.le
<=
Restrictions.between
BETWEEN
Restrictions.like
LIKE
Restrictions.in
in
Restrictions.and
and
Restrictions.or
or
Restrictions.sqlRestriction
用SQL限定查询
Criteria query = HibernateUtil.getSession().createCriteria(Entity.class);

if (Id > 0)

{

query.add(Restrictions.eq(id,
Entity.getId()));

}

if (title != null )

{

query.add(Restrictions.like(TITLE,
Entity.getTitle(), MatchMode.ANYWHERE));

}

if (Entity.getStatus() > -1)

query.add(Restrictions.in(STATUS, ArrayUtils.toObject(new int[] { 0, 1 })));

}

if (Entity.getEndTime() > 0 &&

Entity.getStartTime() > 0)

{

query.add(Restrictions.or(

Restrictions.between(START_TIME,
Entity.getStartTime(),

Entity.getEndTime()),

Restrictions.between(END_TIME,
Entity.getStartTime(),
Entity.getEndTime())));

// query.add(Restrictions.ge(START_TIME,
Entity.getStartTime()));

// query.add(Restrictions.le(END_TIME,
Entity.getEndTime()));

}

query.addOrder(Order.asc(START_TIME));

query.add(Restrictions.sqlRestriction("{alias}.id in (select id from user where manager_id = "+managerId+")"));

return query.list();

备注:

hibernate的查询,其中学到构建Criteria查询,在Criteria查询中

使用sqlRestriction()方法来提供SQL语法作限定查询,如:

Criteria
criteria = session.createCriteria(User.class);
criteria.add(Restrictions.sqlRestriction(“{alias}.name
LIKE(?)", "cater%", Hibernate.STRING));
List users = criteria.list();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: