我正在审计一个实体的变化,比如PersonEntity。 现有代码支持创建或编辑人员的个人资料并持久保存相应的PersonEntity。如果编辑,它将更新数据库中的PersonEntity。它还支持基于诸如年龄的一些属性来获取人的查询。此外,它还提供API来设置“创建者”,“更新者”和“更新时间” - 通常它是可以审核的。
我的工作是通过持久保存PersonEntity的所有旧版本来使其更具可审计性。我想我有两个选择:
在我看来,这不是一个好的选择,因为3)会导致一堆代码更改,并且也会减慢查询速度。
但是以这种方式,两个相似的类同时存在。我最初的解决方案是简单地将PersonEntity包装到PersonAuditEntity中,但似乎JPA不支持在另一个实体中嵌入实体。是对的吗?
任何其他建议都将受到高度赞赏。
答案 0 :(得分:1)
答案 1 :(得分:0)
另一种选择。
添加一个新列,当该行替换为新行时,该列将设置为非活动状态。只添加新行,永不更新行。
所有选择都需要使用额外的where子句"和inactive = false"