我知道在hibernate中获取唯一/不同数据列表的两种方法。我可以使用投影或将数据列表转换为休眠标准中的集合来获取唯一/不同的数据列表。
Set<Student> students = new HashSet<Student>(crt.list());
我应该使用Set over projection来获取唯一数据列表吗?
提前致谢
您好, 我得到了解决方案,现在为所有人分享。我们应该从db获取较小的数据列表,它更快。所以我认为我们应该使用Projection。但现在我实现了如下:
Criteria crt = sessionFactory.getCurrentSession().createCriteria(User.class);
crt.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<User> users = crt.list(); // fetch distinct User list
我使用了Criteria.DISTINCT_ROOT_ENTITY而不是Projection。