複数の列を持つ@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
ありがとう
Person
とfirstName
の2つのフィールドを持つクラス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;