2

これは非常に簡単かもしれませんが、JPAの仕様には明確な記述がありません。注釈のListないベースの関係がある場合、例:@OrderBy

@OneToMany
List<Child> children;

では、Javaでのこのリスト要素の順序はどうなるでしょうか。Child多対多の場合、これがテーブル内の対応するレコードまたは中間テーブル内のエントリの順序になることは合理的と思われますが、JPAプロバイダーの動作は保証されていますか?

4

4 に答える 4

2

私の知る限り、注文は仕様によって保証されていません。@OrderByは、注文に依存する場合の方法です。

編集:JPA 1.0仕様からの引用:

ポータブルアプリケーションは、OrderBy構造が使用され、リストへの変更が指定された順序を遵守しない限り、永続コンテキスト全体でリストの順序が維持されることを期待するべきではありません。それ以外の場合、順序は永続的ではありません。

(19ページ、脚注[4])

于 2012-05-10T07:45:03.553 に答える
2

また、エンティティに子がない場合、JPA仕様では、リストを取得するときに空のリストを返すかnullを返すかが指定されていないため、nullpointerexceptionsを回避するために必ずチェックしてください。

于 2012-05-10T07:56:34.580 に答える
1

動作が保証されるわけではなく、順序は毎回異なる可能性があります。それは休止状態で私に起こりました:私がページをリフレッシュしたときに順序が変わりました。

于 2012-05-10T07:44:01.433 に答える
0

クラスとそのプロパティの定義ではなく、検索時に検索結果を並べ替えることができます。

于 2012-05-10T07:38:29.837 に答える