Hibernate:如何维护插入顺序

时间:2010-06-11 04:43:01

标签: java hibernate orm

我有一个实体列表,其中创建顺序很重要,但它们不包含用于排序的时间戳。实体在创建时会添加到列表的末尾,以便在列表本身中正确排序。

使用Hibernate持久保存列表后,实体按照创建顺序出现在数据库表中。但是,当使用新的Hibernate会话检索列表时,列表现在与插入/创建的顺序相反。

这是预期的行为吗?有没有办法按照表中显示的顺序检索列表?

主键是UUID,并且应始终在同一IP地址和JVM上创建实体列表。这意味着按UUID排序是可能的,但我宁愿不作出假设。

另一种可能性是,如果保证列表总是以相反的顺序出现,我总是可以向后处理它。

2 个答案:

答案 0 :(得分:3)

您必须将列表保留为 list。这样,您将有一个额外的列来保存元素的顺序。

包和套装等类型将完成工作,但会失去元素的顺序。

答案 1 :(得分:3)

JPA(hibernate实现)有@OrderBy

@OneToMany
@OrderBy("uuidColumn")
private List<Something> list;
相关问题