JPA/Hibernate @OrderBy 多列注解,每列 ASC/DESC
JPA/Hibernate @OrderBy annotation with multiple columns and ASC/DESC for each
我想使用带有多列的@OrderBy 批注对 OneToMany 字段进行排序,并为每个列指定排序顺序,但我似乎无法在任何地方找到有关如何操作或是否不可能的信息。
注释的规范说:
orderby_list::= orderby_item [,orderby_item]*
orderby_item::= property_or_field_name [ASC | DESC]
所以我猜这是不可能的,但我还是想问问。
放置以下内容会在部署时引发 HibernateException:
@OrderBy("field1 DESC, field2 DESC, field3 DESC, field4 DESC")
正在生成:
Caused by: org.hibernate.HibernateException: Unable to parse order-by fragment
谢谢
如果您有一个 class Person
包含 2 个字段,firstName
和 lastName
那么您可以通过查询执行
SELECT p FROM Person p ORDER BY p.firstName ASC, p.lastName DESC
这就是 JPQL BNF 所说的。
当你有一个 Person
个对象的列表时,你可以像这样定义列表排序(相同的语法)
@OneToMany
@OrderBy("firstName ASC, lastName DESC")
List<Person> myList;
我想使用带有多列的@OrderBy 批注对 OneToMany 字段进行排序,并为每个列指定排序顺序,但我似乎无法在任何地方找到有关如何操作或是否不可能的信息。 注释的规范说:
orderby_list::= orderby_item [,orderby_item]*
orderby_item::= property_or_field_name [ASC | DESC]
所以我猜这是不可能的,但我还是想问问。
放置以下内容会在部署时引发 HibernateException:
@OrderBy("field1 DESC, field2 DESC, field3 DESC, field4 DESC")
正在生成:
Caused by: org.hibernate.HibernateException: Unable to parse order-by fragment
谢谢
如果您有一个 class Person
包含 2 个字段,firstName
和 lastName
那么您可以通过查询执行
SELECT p FROM Person p ORDER BY p.firstName ASC, p.lastName DESC
这就是 JPQL BNF 所说的。
当你有一个 Person
个对象的列表时,你可以像这样定义列表排序(相同的语法)
@OneToMany
@OrderBy("firstName ASC, lastName DESC")
List<Person> myList;