我對JPA有以下問題:保存JPA列表中的訂單
我可以保存java.util.List中元素的順序嗎?在我的應用程序中,我將元素放在列表中的順序很重要,但在從數據庫中獲取這些集合後,順序與預期不同。你能告訴我一種解決這個問題的方法嗎?
P.S.在我可以訂購的收藏品中,實體中沒有字段。
羅森
我對JPA有以下問題:保存JPA列表中的訂單
我可以保存java.util.List中元素的順序嗎?在我的應用程序中,我將元素放在列表中的順序很重要,但在從數據庫中獲取這些集合後,順序與預期不同。你能告訴我一種解決這個問題的方法嗎?
P.S.在我可以訂購的收藏品中,實體中沒有字段。
羅森
有在JPA 1這樣的一些哈克方式,但最簡單的方法來切換到JPA 2提供商。 @OrderColumn註釋支持就是你要找的。 Eclipselink have an ok tutorial on how to use it。
JPA有2種類型的列表。在JPA1中有一個「有序列表」(這是你看到的,由一些SQL子句定義的排序)。在JPA2中,您可以擁有「有序列表」或者「索引列表」(保存創建順序)......所提及的@OrderColumn。任何JPA2的實現都必須支持這個例如DataNucleus。從第一天起
可以保存在一個java.util.List的元素的順序
JDO已經有了索引列表。在JPA 2.0中,通過使用@OrderColumn註釋來保存元素的順序是一種好方法。
詳細情況,您可以參考以下鏈接 Order Column (JPA 2.0)
感謝您發佈相關文檔的鏈接。 – Spider 2015-09-10 19:32:15
這是註釋只能在現有的EclipseLink? 無論如何,據我所見,它不會解決我的問題。在鏈接的例子中,您保存了表中添加實體的順序,而不是集合中它們滿足的順序。就像它們是由「電話」實體的ID-s命令一樣。這不是我的情況。 P.S.一個實體可能是不同計數的集合的一部分。 – 2010-04-15 09:10:40
這不僅僅是Eclipselink的一部分,不,它是JPA 2規範的一部分。我還沒有使用它,但它應該保留集合的順序。另一個鏈接:http://blogs.sun.com/ldemichiel/entry/java_persistence_2_0_public – GaryF 2010-04-15 13:35:27
指向blogs.sun.com的鏈接返回404。 – 2012-03-20 11:40:23