たとえば、コレクションとしての操作の履歴を持つエンティティがあります。最新の操作の日付でエンティティを並べ替えたい(これは履歴の最初の要素です)。
私はこのようなことをしたいです:
criteria.addOrder(Order("history[0].date"))
これは可能ですか?
たとえば、コレクションとしての操作の履歴を持つエンティティがあります。最新の操作の日付でエンティティを並べ替えたい(これは履歴の最初の要素です)。
私はこのようなことをしたいです:
criteria.addOrder(Order("history[0].date"))
これは可能ですか?
まったくありそうもない。
履歴のデータは別のテーブルにあります。この関係で並べ替えるには、少なくとも他のテーブルへの何らかの結合を含む、より複雑な基準が必要になります。おそらくエイリアスだと思います。
クラスのマッピングを投稿してください。そうすれば、これを行う方法のヒントを提供できる可能性があります。
私の知る限り、Criteriaはマップされたプロパティによる順序付けのみをサポートしているため、最終変更日を計算されたプロパティとして(プロパティタグのformula属性を使用して)マップすることでうまくいく可能性があります。
確かに、これは醜いですが、これまで誰もより良いアプローチを投稿していないので...
編集:クエリのパフォーマンスもあまり良くない可能性があります。おそらく、これを冗長列としてエンティティテーブルに追加する方が適切なオプションです。