我正在尝试做这样的事情:
@ElementCollection(fetch = FetchType.EAGER)
@CollectionTable(name = "UserStrings")
@Column(name = "string")
@OrderBy
private List<String> strings = new LinkedList<>();
这会产生一个表格:
UserStrings
-----------
User_object_id bigint(20) NOT NULL,
string DEFAULT NULL
这很好,但是我得到的集合是一个无序的org.hibernate.collection.internal.PersistentBag
,并且每次迭代它时,我都会得到不同的顺序。我尝试使用 @OrderBy
,但它不适用于字符串集合,我想如果它是实体集合,它会起作用。
我绝对确定我希望它保留字符串集合,为它们创建新实体是没有意义的。
我希望字符串按其值排序,因此 OrderColumn 也(我认为)不适用于此目的,因为它会创建用于排序的附加列。
有人知道我可以做什么来将它们放入像 ArrayList 或 LinkedList 这样的有序集合中吗?
最佳答案
很抱歉带来坏消息,但这似乎是 known hibernate issue ,尚未解决。
关于java - 如何实现对简单对象集合的排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15996624/