java - 实现 "reorderable"实体的最佳方式

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

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

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

最佳答案

最合适的双向集合,是一个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/

相关文章:

mysql - 如何使用虚拟实体数据预填充数据库?

java - JPA冗余数据库

java - .jspx 中的编码错误

spring - getcurrentsession 中的空指针异常

来自简单 SQL 查询的 Hibernate 条件查询(带有嵌套子查询)

java - 在 hibernate 中加入数组

java - 使用 invokeLater 一一显示对话框

java - 如何检查 char 数组中的至少一个元素是否在字符串中? ( java )

java - JPA 关系和多态性

java - 从 Hibernate session 中获取 EntityManager