5

根据 Java EE 6 文档,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)之间的区别。一个按条件对元素进行排序,另一个保留它们插入的位置。它们满足不同的用例。OrderColumn 允许为模式生成目的指定列名。OrderBy 提供了一种用于检索目的的查询机制。因此,注释和 XML 允许输入的内容是不同的。

于 2012-04-24T10:45:51.353 回答