1

たとえば、コレクションとしての操作の履歴を持つエンティティがあります。最新の操作の日付でエンティティを並べ替えたい(これは履歴の最初の要素です)。

私はこのようなことをしたいです:

criteria.addOrder(Order("history[0].date"))

これは可能ですか?

4

2 に答える 2

1

まったくありそうもない。

履歴のデータは別のテーブルにあります。この関係で並べ替えるには、少なくとも他のテーブルへの何らかの結合を含む、より複雑な基準が必要になります。おそらくエイリアスだと思います。

クラスのマッピングを投稿してください。そうすれば、これを行う方法のヒントを提供できる可能性があります。

于 2010-02-19T22:57:51.743 に答える
1

私の知る限り、Criteriaはマップされたプロパティによる順序付けのみをサポートしているため、最終変更日を計算されたプロパティとして(プロパティタグのformula属性を使用して)マップすることでうまくいく可能性があります。

確かに、これは醜いですが、これまで誰もより良いアプローチを投稿していないので...

編集:クエリのパフォーマンスもあまり良くない可能性があります。おそらく、これを冗長列としてエンティティテーブルに追加する方が適切なオプションです。

于 2010-02-20T20:02:27.740 に答える