java - 是否可以从 Hibernate Criteria 中删除订单?

标签 java hibernate annotations sql-order-by criteria

如果我在对象上有一个 @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/

相关文章:

java - Xmpp 与 Websocket

Hibernate 有效,但在通过 Web 服务调用时无效

java - OneToOne 双向映射中的唯一约束

java - 如果嵌入组件,Hibernate 不会创建实体表

swift - 制作多个引脚注释按钮以连接到另一个 View Controller (swift 3)

来自文本文件的java 2D数组

java - 匹配包含子域的 URL

java - 我的 Hibernate CRUD 没有在表中保存数据,而是显示表为空

java - 使用注释生成 equals/hashcode/toString

java - Json 到 Java 对象转换中带有 null 响应的 Spring MVC 请求