我正在尝试做这样的事情:
@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这样的有序集合中?
答案 0 :(得分:1)
很抱歉成为坏消息的承载者,但这似乎是known hibernate issue,尚未解决。
答案 1 :(得分:0)
This可能会有所帮助。
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="CUST_ID")
@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
public SortedSet<Ticket> getTickets() {
return tickets;
}