如果我在对象上有一个 @OrderBy("someProperty") 注释,然后使用 Criteria 添加一个 ORDER BY 子句,如下所示:
criteria.addOrder(Order.asc("id"));
生成的 SQL 将执行如下排序:
ORDER BY someProperty, id asc
是否可以改变两者的顺序或者去掉someProperty的顺序?我无法删除 @OrderBy 注释并且我正在使用 Hibernate for Java。
最佳答案
Criteria没有删除 Order 的方法都不是Criterion Order类非常有限,您只能使用属性名称,它会生成标准和可移植的 SQL。 OrderBy 注释是一个 SQL 顺序,如 javadoc 所述:OrderBy 这意味着您可以在那里使用任何 sql(甚至是您的数据库供应商独有的一个)。看看这些文章:Sorting Collections in Hibernate Using SQL in @OrderBy
将 SQL 片段添加到您的域类中不一定是世界上最优雅的事情,但它可能是最实用的事情。
关于java - 是否可以从 Hibernate Criteria 中删除订单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3759154/