首先定义一个条件查询实例,这里要有一个主表(mainTable) DetachedCriteria deCriteria = DetachedCriteria.forClass(mainTable.class);
$ {) `3 {) }2 G [3 }2 a 然后再给deCriteria加条件:
2 }6 M, ?& \/ r 1,用实例查询:1 N3 r* q1 j& p% B8 [* q
deCriteria.createCriteria("mainTable");
/ V, y1 x% f K* W3 T6 A( Y 2,用条件查询:
/ @3 T- R! g. y/ h- V$ x* c deCriteria.add(Restrictions.eq("colName", colValue));. P. Z) M) D- p( U& U
3,关联另一个表的实例:
% q1 M& t: s, @3 x V deCriteria.createCriteria("otherTable").add(- W7 u6 _3 m0 j6 @ u4 K# J
Example.create(mainTable.getOtherTable()));# p! h% W5 A4 f) n a$ @
其中otherTable是mainTable的属性,对应要关联的表。
' f7 ?. F8 a9 [# ?! ` 4,关联另一个表的条件:( M6 I$ O% E. m. _( G
deCriteria.createCriteria("otherTable").add(Restrictions.eq("colName", colValue));/ X3 N8 X1 F- R% v1 v
当然Restrictions还有很多方法,如like,between等。各种方式可以组合使用,用Example会忽略空字段,为组合多条件组合查询提供了方便。这里空串也会作为条件,和null是有区别的。7 K3 v4 I8 ~. ]$ H
返回查询结果:
( z+ G: ^: e+ Y# x+ m8 L List list = getHibernateTemplate().findByCriteria(deCriteria); |