在JPA / Hibernate中动态排序?

时间:2010-01-13 10:44:56

标签: hibernate dynamic jpa sql-order-by

天真的尝试查询看起来像这样:

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

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

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

1 个答案:

答案 0 :(得分:3)

不幸的是,必须如何使用JPA。

但我依旧记得在Hibernate上使用编号参数(?1,?2 ..)进行本机查询( em.createNativeQuery )的排序(但我可能错了)。无论如何另一种解决方案(如果你使用JPA2或Hibernate)是使用criteria API