コレクションのいくつかのプロパティによって順序付けする Hibernate 基準を作成するにはどうすればよいですか
-
21-09-2019 - |
質問
たとえば、コレクションとして操作の履歴を持つエンティティがあるとします。最新の操作の日付 (履歴の最初の要素) でエンティティを並べ替えたいと考えています。
私はこのようなことをしたいです:
criteria.addOrder(Order("history[0].date"))
これは可能ですか?
解決
私の知る限り、Criteria はマップされたプロパティによる順序付けのみをサポートしているため、おそらく最終変更日を計算されたプロパティとしてマップします ( プロパティタグのformula属性) うまくいきます。
確かに、これは醜いですが、これより良いアプローチを投稿した人はこれまで誰もいないので...
編集:また、クエリのパフォーマンスがあまり良くない可能性もあるため、これを冗長列としてエンティティ テーブルに追加する方が良い選択肢になる可能性があります。
他のヒント
必ずしもすべてそうでます。
あなたの歴史のためのデータが別のテーブルであり、この関係によって順番にあなたが他のテーブルへの結合のいくつかの並べ替えを含む少なくとも必要以上に複雑な基準になるだろう、と私はおそらくエイリアスを疑います。
ポストクラスのマッピング、そして私たちはこれを行う方法のヒントを与えることができるかもしれません。
所属していません StackOverflow