天天看點

Hibernate條件查詢(DetachedCriteria)

Hibernate條件查詢(DetachedCriteria)

方法 說明

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限定查

MatchMode類包含的各個靜态常量執行個體

比對模式

舉例

MatchMode.START

Expression.like(“name”,”y”, MatchMode.START)

姓名以y開頭

MatchMode.END

Expression.like(“name”,”y”, MatchMode. END)

姓名以y結尾

MatchMode.ANYWHERE

Expression.like(“name”,”y”, MatchMode. ANYWHERE)

姓名中包含y

MatchMode.EXACT

Expression.like(“name”,”y”, MatchMode. EXACT)

精确比對,姓名必須為y

示例:

view source print?01 DetachedCriteria detachedCrit = DetachedCriteria.forClass(User.class);

02 detachedCrit.addOrder(Order.asc("uname")); //按照姓名排序

03

04 if (user!=null && user.getUname()!=null&& user.getUname().trim().length()>0) //姓名查詢條件

05 detachedCrit.add(Restrictions.like("uname", user.getUname().trim(), MatchMode.ANYWHERE));

06 if (user!=null && user.getUloginId()!=null && user.getUloginId().trim().length()>0) //身份證号查詢條件

07 detachedCrit.add(Restrictions.like("uloginId", user.getUloginId().trim(), MatchMode.ANYWHERE));

08 if(user!=null && user.getType()!=null && user.getType()!=0) {

09 detachedCrit.add(Restrictions.eq("type", user.getType()));

10 }