在JPA中保存列表的顺序

时间:2010-04-15 08:09:47

标签: java jpa

我有关于JPA的以下问题:

我可以在java.util.List中保存元素的顺序吗?在我的应用程序中,我将元素放入列表中的顺序很重要,但是在我从数据库中获取这些集合之后,顺序并不相同(如预期的那样)。你能告诉我一个解决这个问题的方法吗?

P.S。我放入集合中的实体中没有一个字段可供我订购。

罗森

3 个答案:

答案 0 :(得分:36)

在JPA 1中有一些hacky方法可以做到这一点,但最简单的方法是切换到JPA 2提供程序。 @OrderColumn注释支持是您正在寻找的。 Eclipselink have an ok tutorial on how to use it

答案 1 :(得分:2)

JPA有两种类型的列表。在JPA1中有一个“有序列表”(这是你看到的,由一些SQL子句定义的排序)。在JPA2中,您可以使用“有序列表”或“索引列表”(保留创建顺序)... @OrderColumn引用。任何JPA2的实现都必须支持这种,例如DataNucleus。

自第1天以来,JDO已编制索引列表

答案 2 :(得分:2)

您可以在java.util.List中保存元素的顺序。在JPA 2.0中,有一种使用@OrderColumn注释来保存元素顺序的好方法。

有关详细信息,请参阅此链接 Order Column (JPA 2.0)