52.Hibernate Hql与Criteria查询的补充知识

 

*HQL
1.查询多个对象select art, user from Article art, User user where art.author.id = user.id and art.id =: id这种方式返回的是Object[], Object[0]:article, Object[1]:user.
2.分页query.setFirstResult, query.setMaxResults.
查询记录总数query.iterate("select count(*) from Person").next()
3.批量更新query.executeUpdate()可能造成二级缓存有实效数据。


*Criteria
1.排序Criteria.addOrder(Order.desc(propertyName));
2.关联查询criteria.setFetchMode("propertyName",FetchMode.SELECT)与映射文件中关联关系的fetch作用一致。
3.投影Projections.rowCount(), max(propertyName), avg, groupProperty...
4.分页Projections.rowCount(), criteria.setFirstResult(), criteria.setMaxResults()
5.DetachedCriteria可在session外创建(在其他层创建比如在Service中创建)然后用getExecutableCriteria(session)方法创建Criteria对象来完成查询。
6.Example查询,Example.create(obj);criteria.add(example).

 

转自:http://www.java63.com/hibernate/hql_criteria_search.html

posted @ 2012-05-05 11:13  hibernate3例子  阅读(216)  评论(0编辑  收藏  举报