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の遺物ですか?