1

我正在尝试做这样的事情:

@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 这样的有序集合中?

4

2 回答 2

1

很抱歉成为坏消息的承担者,但这似乎是一个已知的休眠问题,尚未解决。

于 2013-04-14T07:13:20.423 回答
0

可能会有所帮助。

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="CUST_ID")
@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
public SortedSet<Ticket> getTickets() {
    return tickets;
}
于 2013-04-14T07:15:24.653 回答