2

这可能非常简单,但我在 JPA 规范中找不到任何明确的说明。如果我有一个没有注释的List基于关系的关系,例如:@OrderBy

@OneToMany
List<Child> children;

那么这个列表元素在 Java 中的顺序是什么?Child如果它是多对多的,这将是表中相应记录或中间表中条目的顺序似乎是合理的,但这是 JPA 提供者的保证行为吗?

4

4 回答 4

2

此外,当您的实体没有子实体时,JPA 规范没有指定在您检索列表时它是否应返回空列表或 null,因此请务必检查它以避免空指针异常。

于 2012-05-10T07:56:34.580 回答
2

据我所知,规范不保证订单。如果您依赖订单,@OrderBy是要走的路。

编辑:引用 JPA 1.0 规范:

可移植应用程序不应期望在持久性上下文中维护列表的顺序,除非使用 OrderBy 构造并且对列表的修改遵循指定的顺序。该命令不是持久的。

(第 19 页,脚注 [4])

于 2012-05-10T07:45:03.553 回答
1

没有保证的行为,每次的顺序可能不同。休眠时发生在我身上:刷新页面时顺序发生了变化。

于 2012-05-10T07:44:01.433 回答
0

您可以在搜索时对搜索结果进行排序,而不是在类及其属性的定义中。

于 2012-05-10T07:38:29.837 回答