实现“可重新定位”实体的最佳方式

时间:2015-04-27 19:45:32

标签: java hibernate jpa hibernate-mapping spring-data-jpa

我有一个向用户显示的实体列表或多或少作为列表。现在,用户不仅可以添加或删除实体,还可以对现有实体进行重新排序(典型的“上行”,“下行”,“转到顶部”,“转到底部”操作)。

但实现此行为的最佳方法是什么?当然,我可以在服务层“手动”编写所有需要的操作,但这个功能似乎是一个常见的要求,所以可能已经有某种标准的解决方案了吗?

1 个答案:

答案 0 :(得分:3)

最合适的双向集合是ordered List

@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", orphanRemoval = true)
@OrderColumn("order_id")
private List<Child> children = new ArrayList<>();

order_id列将用于在检索时对元素进行排序,当您更改元素顺序时,Hibernate将根据当前元素索引发出相应的更新以设置order_id列。