JPA 1.0 @OrderBy 使用字段名称与 JPA 2.0 @OrderColumn 使用列名称

标签 jpa sql-order-by jpa-2.0

根据 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 的遗物吗?

最佳答案

尝试了解有序列表(JPA1、JPA2)和索引列表(JPA2)之间的区别。一个按条件对元素进行排序,另一个保留它们插入的位置。它们满足不同的用例。 OrderColumn 允许指定列名称以用于模式生成目的。 OrderBy 提供了用于检索目的的查询机制。因此注释和XML允许输入的内容是不同的。

关于JPA 1.0 @OrderBy 使用字段名称与 JPA 2.0 @OrderColumn 使用列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10295923/

相关文章:

java - Spring :JPA 继承

java - JPA:处理复制的列表也会修改 ParentCollection

mysql - 从另一个表中按特定顺序排序的表中选择值

sql - PostgreSQL Order By 无法正常工作

java - 在 List 属性上使用不带元模型的 JPA2 标准 API

java - 通过单个查询获取最小和最大列值

java - JPA 逆向工程师之后 - 未定义 [javax.persistence.EntityManagerFactory] ​​类型的唯一 bean : expected single bean but found 0

SQL Query : Need order by count, 大多数必须在上面,其余的在后面

java - jpa2 hibernate,一个测试实体锁定的测试用例

java - 配置 hibernate 以检索集合而不持久化它