Hibernate Envers - 一起审计多个实体
Posted
技术标签:
【中文标题】Hibernate Envers - 一起审计多个实体【英文标题】:Hibernate Envers - audit multiple entities together 【发布时间】:2013-08-27 19:36:39 【问题描述】:我希望使用 Envers 来处理我的应用程序中的审核。我有多个用例,所以我仅限于确保我有一个 RevisionEntity
来代表我的整个应用程序(否则,我认为使用多个实体解决这个问题会容易得多)。基本上,我想跟踪一个实体的多个实例作为同一修订版的一部分,理想情况下甚至跟踪其他实体作为该修订版的一部分。
基本上,一个实体(父实体)的插入应该触发修订的开始,应该包括对一个实体的更新,并且还应该包括对第三个实体的插入或更新(在这一修订中)。
那么这需要自定义策略吗?我是要打破现有实体的策略,还是需要进行 if/else 检查?
【问题讨论】:
【参考方案1】:每个修订都捕获在单个事务中完成的更改,并且不可自定义;也总是有一个单一的修订实体。
这个想法是数据库总是在事务之前和事务提交之后处于“一致”状态。这就是 Envers 想要捕捉的状态。
因此,如果您在一个事务中修改多个实体,它们都将在一个修订中被捕获。
【讨论】:
以上是关于Hibernate Envers - 一起审计多个实体的主要内容,如果未能解决你的问题,请参考以下文章
审计没有 Hibernate Envers 的 java 实体
在 Spring Hibernate java 项目中使用“Envers”审计表