天真的尝试查询看起来像这样:
Query query = em.createQuery("from org.domain.Resource r where r._parent = ? order by ?");
这不起作用,因为参数应该是数据,而不是列名或ASC或DESC之类的语法。
您为这种动态排序找到了哪些解决方法?将排序字符串连接到查询字符串是显而易见的,但还有更好的吗?
答案 0 :(得分:3)
不幸的是,必须如何使用JPA。
但我依旧记得在Hibernate上使用编号参数(?1,?2 ..)进行本机查询( em.createNativeQuery )的排序(但我可能错了)。无论如何另一种解决方案(如果你使用JPA2或Hibernate)是使用criteria API