我有关于JPA的以下问题:
我可以在java.util.List中保存元素的顺序吗?在我的应用程序中,我将元素放入列表中的顺序很重要,但是在我从数据库中获取这些集合之后,顺序并不相同(如预期的那样)。你能告诉我一个解决这个问题的方法吗?
P.S。我放入集合中的实体中没有一个字段可供我订购。
罗森
答案 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)