5

Java EE 6 docsによると、JPA 1.0@OrderByはフィールド名を使用しますが、JPA 2.0@OrderColumnは注釈を宣言するときに列名を使用します。ここを参照してください:

http://docs.oracle.com/javaee/6/api/javax/persistence/OrderBy.html

http://docs.oracle.com/javaee/6/api/javax/persistence/OrderColumn.html

前者は JPA 1.0 以降で利用可能で、後者は JPA 2.0 で追加されました。少しの間ドキュメントを読むと、@OrderByフィールド/プロパティを使用して順序を指定するのに対し@OrderColumn、SQL/DDL 列名を使用することが明らかになります。

なぜそのように作られているのですか?私には、これは明らかに矛盾しているように見えます。

物事がそのように作られている理由はもっと深いところにありますか? JPA 1.0の遺物ですか?

4

1 に答える 1

2

順序付きリスト (JPA1、JPA2) と索引付きリスト (JPA2) の違いを理解してください。1 つは条件によって要素を並べ替え、もう 1 つは要素が挿入された位置を保持します。それらはさまざまなユースケースを満たします。OrderColumn では、スキーマ生成のために列名を指定できます。OrderBy は、検索用のクエリ メカニズムを提供します。したがって、アノテーションと XML で入力できるものは異なります。

于 2012-04-24T10:45:51.353 に答える