java - 如何实现对简单对象集合的排序?

标签 java hibernate persistence

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

@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/

相关文章:

java - 微服务共享对象

java - 最佳实践 : best database naming convention for JPA?

java - 为什么以下查询不能使用双 LIKE 子句?

java - TextRank 运行时间

java - Java 程序如何跟踪其运行期间使用的最大实际堆大小?

java - INIT=RUNSCRIPT 和相对路径的问题

spring - Hibernate 中的 Java 8 LocalDate 错误地映射到 TIMESTAMP

java - 在第一个中进行更新时的两个实体管理器实例,第二个实例选择旧值

java - 具有持久子类的非持久父类(super class)

java - 设置entityManager的components.xml缝weblogic