我有一个或多或少作为列表显示给用户的实体列表。现在,用户不仅可以添加或删除实体,还可以对现有实体重新排序(使用典型的“向上”、“向下”、“转到顶部”、“转到底部”操作)。
但是实现这种行为的最佳方式是什么?当然,我可以在服务层“手动”编写所有需要的操作,但这个功能似乎是一个普遍的需求,所以也许已经有某种标准解决方案了?
最佳答案
最合适的双向集合,是一个ordered List :
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", orphanRemoval = true)
@OrderColumn("order_id")
private List<Child> children = new ArrayList<>();
order_id
列将用于在检索时对元素进行排序,当您更改元素顺序时,Hibernate 将发出适当的更新以根据当前元素索引。
关于java - 实现 "reorderable"实体的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904595/