我正在为我的项目使用Spring Data JPA和Spring Boot。
我有对象的审核要求(创建/更新/删除)。我可能还需要获取特定对象的审核修订版。 我已经在网上检查过Spring Data Envers无法修改并且没有跟踪删除?
所以我的问题是:
1)我们可以将Hibernate Envers与Spring数据JPA集成吗?
2)我们有本机查询,HQL和Spring数据JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?
由于我是审计新手,请告诉我上述问题。
谢谢。
答案 0 :(得分:7)
这是可能的,很容易! 我使用这些技术做了一个示例项目:Spring启动,Spring数据jpa和带有Envers的hibernate来审计一些关系表。
以下是示例:https://github.com/juanca87/example-envers
我希望它对你有用,如果你有任何问题,请告诉我。
答案 1 :(得分:6)
我们可以将Hibernate envers与Spring数据JPA集成吗?
是的,Hibernate Envers直接与Hibernate ORM直接集成,而且由于Spring Data JPA已经与Hibernate ORM集成,因此您可以开箱即用。
我们有本机查询,HQL和Spring数据JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?
只要你通过Session save / update或EntityManager的持久/合并操作来操作实体,Hibernate就会为Envers引发必要的事件以跟踪你的更改。
如果您使用Native SQL或JPA的CriteriaUpdate
/ CriteriaDelete
操作来操作数据库记录,那么没有 Envers将不拾取这些更改。这是因为Hibernate不会为允许Envers审核这些更改的批量或无状态操作引发事件。
答案 2 :(得分:0)
是的,Spring Data JPA和Hibernate Envers集成没有问题。它跟踪保存,更新和删除操作。
您只需在课程上方添加@Audited
注释即可。