我正在使用 Java EE 和 JPA 开发一个系统,用户可以在其中对实体进行更改。在需要的时候需要追溯变化。因此,每次更新时都必须记录所有更改和用户。记录更改的最佳方式是什么。
例如,有一个名为 Investigation 的实体。它具有名称、类别、价格、数量等属性。用户可以搜索单个调查并在一个实例中更改名称,而在另一个实例中,另一个用户可以更改价格。在需要时需要追溯所有这些更改完成的情况以及执行更改的用户。
此 link 中描述的一种方法是将对象标记为旧编辑并创建具有更新值的新对象,但问题是来自不同实体的其他几个对象引用旧对象。
此 link 中描述的另一种方法是在新表中使用版本控制字段。在 JPA 中可以通过创建一个扩展主实体的新实体来实现。
在这些方法中,最佳实践是什么? Java Persistence 中是否有其他优化的方式来保存记录编辑历史?
最佳答案
EclipseLink 支持历史。
关于database - 在数据库中记录编辑历史的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007056/