後,我有以下領域的實體:JPA的SortedSet未使出堅持
@ManyToMany(cascade = { CascadeType.ALL }, targetEntity = Comment.class)
@JoinTable(name = "program_to_comment")
@OrderBy("position")
private Set<Comment> comments = new HashSet<Comment>();
,但我有問題,每當我堅持它使用:
Program p = entityManager.persist(entity);
領域自帶對象按排序在entity
對象中進行排序。
假設entity
對象配置如下:Program(comments:[Comment(position:15), Comment(position:10)], ...)
,堅持實體(entityManager.persist
),它會將註釋和程序實體本身都存儲到數據庫中。但是持久化方法調用的結果實體是一個對象,如下所示:Program(comments:[Comment(position:15), Comment(position:10)], ...)
,按照與持久方法相同的順序。
從我的角度來看,在這一點上,結果實體應該呈現遵循指定的@OrderBy規則的值,還是我錯過了什麼?
其他信息:
- JPA2
- 休眠4.2.0.Final
如果您採取的方式是使用['@ OrderColumn'](http://docs.oracle.com/javaee/6/api/javax/persistence/OrderColumn.html)註釋代替,所以不要把在Comment對象中,你可以通過控制它們在列表中的位置來控制註釋的順序。這應該在應用程序和數據庫之間保持一致。不過,我不確定這是否有幫助。 –