【发布时间】:2015-02-15 04:27:05
【问题描述】:
我正在设计一个新的 Java 应用程序,它对审计有非常严格的要求。这里有一个简短的上下文:
我有一个具有多个一对多嵌套关系的复杂实体。如果任何字段发生更改,我需要将其视为对象的新版本,并且所有这些都需要进行审核。现在我有两个选择:
1.) 不要做任何更新操作,只要有任何变化就插入一个新实体。这将要求我创建所有关系对象(即使它们尚未更改),因为我不想保留对任何先前版本对象的引用。我的数据表也成为我的审计表。
或
2.) 始终执行更新操作并在单独的表中维护审计信息。这会在实施方面增加一些复杂性。
我想知道这两种方法中的任何一种是否有好的做法和坏的做法。
谢谢, -csn
【问题讨论】:
-
您可以使用 Hibernate Envers 自动执行第二个选项。
标签: java jpa database-design entity audit