JPA 中列表的保存顺序
我有以下关于JPA的问题:
我可以保存 java.util.List 中元素的顺序吗?在我的应用程序中,我将元素放入Lists中的顺序很重要,但是从数据库中获取这些集合后,顺序就不一样了(如预期的那样)。你能告诉我一个处理这个问题的方法吗?
附言:我放入集合中的实体中没有可以订购它们的字段。
罗森
我有以下关于JPA的问题:
我可以保存 java.util.List 中元素的顺序吗?在我的应用程序中,我将元素放入Lists中的顺序很重要,但是从数据库中获取这些集合后,顺序就不一样了(如预期的那样)。你能告诉我一个处理这个问题的方法吗?
附言:我放入集合中的实体中没有可以订购它们的字段。
罗森
在 JPA 1 中有一些黑客操作方法可以做到这一点,但切换到 JPA 2 提供程序最容易。@OrderColumn注释支持正是您正在寻找的。Eclipselink有一个关于如何使用它的好教程。
JPA 有 2 种类型的列表。在JPA1中有一个“有序列表”(这是你所看到的,由一些SQL子句定义的排序)。在JPA2中,您可以拥有“有序列表”或“索引列表”(其中保留了创建顺序)......所指@OrderColumn。JPA2的任何实现都必须支持这一点,例如DataNucleus。
JDO 从第 1 天起就拥有索引列表