我有一个对象列表,列表中的每个对象都有一个位置,除非明确更改,否则该位置可能不会改变,换句话说,对象在队列中。我应该在我的实体类中使用什么集合来存储这些对象以及该集合应该如何注释?
我目前有这个
@Entity
class Foo {
...
@OneToMany(mappedBy = "foo", cascade = CascadeType.ALL)
List<Bar> bars = new ArrayList<Bar>();
...
}
如果纯粹使用 JPA 无法做到这一点,我将使用 EclipseLink 作为我的 JPA 提供程序,因此如果没有其他帮助,EclipseLink 特定的注释就可以了。
编辑:请注意,问题不在于 Java 不会保留订单,我知道大多数集合都会这样做,问题是我不知道 JPA 保留订单的聪明方法。有一个订单 ID 并通过它进行查询订单是可能的,但在我的情况下,维护订单 ID 很费力(因为用户界面允许重新排序项目),我正在寻找一种更智能的方法来做到这一点。