Hibernate中通过关联映射取得结果集对结果进行排序、分页的方法

 

 在Hibernate中通过关联映射, 例如OneToMany等取得一个实体的属性结果集时有没有办法对结果进行排序或者分页. 直接通过HQL或者SQL可以直接利用HQL\SQL进行排序分页等操作, 但是如果这类关联映射不支持这些操作那么关联映射的作用感觉也不是很大了. 例如一个User实体有一个Set<Logs>属性, 即一个用户有N多操作日志,OneToMany的, 那么如果通过User.getLogs()取得的结果集将是全部查询···

作为属性,分页应该不行.

排序可以: @OrderBy

1、lazy + Filter,如
sortedUsers = s.createFilter( group.getUsers(), "order by this.name" ).list();

2、如果数据量多 直接启用其One-To-Many

一般我选择2

One-To-Many只有在那种数据量比较少的情况我采用 如订单-订单明细

实现排序是可以的,在配置文件中可以配置:

分页是在后台不能直接实现的,可以到前台进行假分页。