hibernate - JPA/Hibernate 中的动态排序?

标签 hibernate dynamic jpa sql-order-by

天真的尝试查询将如下所示:

Query query = em.createQuery("from org.domain.Resource r where r._parent = ? order by ?");

这不起作用,因为参数应该是数据而不是列名或 ASC 或 DESC 等语法。

您为这种动态排序找到了什么样的解决方法?将排序字符串连接到查询字符串是显而易见的方法,但是还有更好的方法吗?

最佳答案

不幸的是,这就是必须使用 JPA 完成的方式。

但是,我确实模糊地记得在 Hibernate 上使用编号参数 (?1, ?2..) 进行 native 查询 (em.createNativeQuery) 排序(但我可能是错的)。无论如何,另一个解决方案(如果您使用的是 JPA2 或 Hibernate)是使用 criteria API

关于hibernate - JPA/Hibernate 中的动态排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2056021/

相关文章:

sql - 查询、 native 查询、命名查询和类型化查询之间的区别

oracle - ORA-12519,TNS :no appropriate service handler found

java - 具有继承性的实体的 JPA native 查询

java - 意外回滚异常 : Transaction rolled back because it has been marked as rollback-only

c# - 为什么这个动态参数不起作用?

ruby-on-rails - Rails - 在模型中动态定义实例方法

function - append 到函数 lua

java - 当 tomcat lib 文件夹中存在 postgre 驱动程序时,为什么 oracle jdbc 上的 hibernate 失败

java - Java中如何解决NumberFormatException?

java - Hibernate 在服务中获取分离的对象,更改 ID 并再次持久化