在我的实体中,我目前有这样的映射:
private Set<Sth> sths;
所以当我使用criteria.addOrder(Order.asc(Sth.ID))
然后休眠生成查询,order by id asc
但集合中的元素未排序(我遍历它们以检查) - 我认为在这种情况下休眠将使用某种排序集实现(我不希望数据总是被排序)。
但是如果我使用..
@OrderBy(Sth.ID)
private Set<Sth> sths;
Hibernate 将生成完全相同的 sql 查询,但这次对数据进行了排序。所以我的问题是 - 这是一个错误吗?我正在使用休眠 3.4。
使用 OrderBy 注释对我来说是可以接受的,但也许我不想总是按此属性进行排序,所以我宁愿在标准查询中给出排序指令,而不是在注释中。
有任何想法吗?它在更高版本的hibernate中是否以相同的方式工作?