Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();
sess.createCriteria(Cat.class)
.add(Restrictions.like(“name”,”Fritz%”))
.add(Restrictions.between(“weight”,minWeight,maxWeight))
.list();
from Cat
from Cat as cat
from Cat cat (省略as)
inner join 内连接 left outer join 左外连接 right outer join 右外连接 full join 全连接
from Cat as cat inner join cat.mate as mate left outer join cat.kittens as kitten
from Cat as cat left join cat.mate.kittens as kittens
form Formula form full join form.parameter param
可以统计查询结果的数目而不必实际的返回他们,,,不用初始化就可以知道一个集合的大小
((Integer)session.iterate(“select count(*) from…”).next()).intValue()
根据集合大小来排序
select usr.id,usr.name from User as usr
left join usr.messages as msg
group by usr.id,usr.name
order by count(msg)
where子句中为选择的大小
from User usr where size(usr.messages) >=1
select usr.id,usr.name from User as usr
left join usr.messages as msg
group by usr.id,usr.name
having count(msg)>=1
JavaBean的属性可以被绑定到一个命名查询的参数上
Query q = s.createQusery(“from foo Foo as foo where foo.name=:name and foo.size=:size”);
q.setProperties(fooBean);//fooBean包含方法getName()和getSize()
通过将接口query与一个过滤器一起使用,,,集合是可以分页的
Query q = s.createFileter(collection,””);//一个简单的过滤器
q.setMaxResults(PAGE_SIZE);
q.setFirstResult(PAGE_SIZE*pageNumber);
通过使用查询过滤器可以将集合的原素分组或排序
Collection orderedCollection=s.filter(collection,”order by this.amout”);
Collection counts = s.filter(collection,”select this.type,cout(this) group by this.type”);