【问题标题】:JPA why OrderBy is applied to SetJPA 为什么将 OrderBy 应用于 Set
【发布时间】:2018-06-10 14:45:20
【问题描述】:

JPA 为什么要将 OrderBy 应用于 Set?

https://docs.oracle.com/javaee/7/api/javax/persistence/OrderBy.html

@Entity 
public class Person {
     ...
   @ElementCollection
   @OrderBy("zipcode.zip, zipcode.plusFour")
   public Set<Address> getResidences() {...};
   ...
}

Set 应该是无序的。注释@OrderBy 有意义吗 在具有 Set 类型的属性上?

【问题讨论】:

  • Set 应该是无序的:这取决于 Set 的实现。例如,LinkedHashSet 具有明确定义的顺序。要么是文档错误,要么更合理地说,JPA 提供者必须确保在这种情况下使用有序集实现。
  • Set 是一个不允许重复的集合。它对排序没有限制,因此 OrderBy 在 Set 上与在 List 或 Collection 上一样有效。
  • "没有订购限制" ?这是什么意思?

标签: jpa sql-order-by


【解决方案1】:

我认为this 问题上标记为已检查的答案也可以回答您的问题。 如那里所述,注释“指定集合值关联或元素集合的元素的顺序在检索关联或集合时。”

据我了解,注解不一定与我们在实体类中使用的Collection类型上插入元素的顺序有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-11
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 2012-09-14
    • 1970-01-01
    相关资源
    最近更新 更多