我有一个名为 Employee 的类,映射到 employee.hbm.xml 。我有一个新的要求,即我应该有一个历史表,即 Employee_history,它应该使用新的额外字段(如 lastUpdated 和 dateCreated)来保存 Employee 表的记录。当我在 Employee 中创建或更新新记录时,它也应该更新到 Employee_History 表中。那么更好的方法应该是什么?我对休眠非常陌生,或者可以说今天就开始了。任何帮助将不胜感激。
问问题
3401 次
2 回答
5
Envers会为您做到这一点:
Envers 项目旨在实现对持久类的轻松审计/版本控制。您所要做的就是使用@Audited 注释您想要审计的持久类或其某些属性。对于每个被审计的实体,将创建一个表,其中将保存对该实体所做的更改的历史记录。然后,您可以轻松检索和查询历史数据。
于 2013-02-22T07:13:20.940 回答
2
另一种简单的方法是将修改后的记录(当然不包括旧值)插入到历史表中。可能需要对代码进行一些更改。因此,无论您在代码中保存已编辑记录的任何位置,只需添加几行即可将现有记录以及您需要的其他字段(例如 lastupdated 等)移动到历史记录表中。
于 2013-02-22T07:59:13.427 回答