【发布时间】: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