【发布时间】:2015-07-06 10:17:22
【问题描述】:
我有一个或多或少作为列表显示给用户的实体列表。现在用户不仅可以添加或删除实体,还可以对现有实体进行重新排序(使用典型的“向上”、“向下”、“向上”、“向下”操作)。
但是实现这种行为的最佳方式是什么?当然,我可以在服务层“手动”编写所有需要的操作,但是这个功能似乎是一个普遍的需求,所以也许已经有某种标准的解决方案了?
【问题讨论】:
-
可在哪里重新订购?在另一个实体?因为您将其标记为 JPA,所以我假设在另一个实体中。
-
没有。这种类型的实体必须是可排序的。问题是用户可以随时更改排序顺序(“现在这个实体需要在列表中上升”)。这就是我所说的“可重新排序”。
-
因此,如果您的意思不是“从数据库中检索”,那么只需在您的 JPQL 查询中设置 ORDER BY 子句。如果您的意思是在检索数据后将它们放入 SortedSet 并定义一个比较器...
标签: java hibernate jpa hibernate-mapping spring-data-jpa