我在我的项目中使用Spring Data JPA和Spring Boot。
我对对象有审核要求(创建/更新/删除)。我可能需要获得审计修订为特定的对象也。我已经在网上检查过了,Spring数据发送器不能获得修订,也不能跟踪删除?
所以我的问题是:
1)我们可以将Hibernate Envers与Spring data JPA集成吗?
2)我们有原生查询、HQL和Spring data JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?
由于我是审计新手,请让我了解上述问题。
谢谢。
发布于 2017-02-21 05:57:26
我们可以集成Hibernate envers和Spring data JPA吗?
是的,Hibernate Envers专门与Hibernate ORM直接集成,而且由于Spring Data JPA已经与Hibernate ORM集成,因此您可以获得这种开箱即用的特性。
我们有原生查询,HQL和Spring data JPA更新/保存/删除动态查询,那么Hibernate envers能够跟踪所有对象吗?
只要您正在通过会话保存/更新或EntityManager的持久化/合并操作来操作实体,Hibernate就会为Envers引发必要的事件来跟踪您的更改。
如果您正在使用Native SQL或JPA的CriteriaUpdate/CriteriaDelete操作来操作数据库记录,那么任何Envers都不会获取这些更改。这是因为Hibernate不会为那些批量或无状态操作引发事件,从而允许Envers审计这些更改。
发布于 2017-03-01 07:12:39
这是可能的,而且很容易!我使用这些技术做了一个示例项目: Spring boot、Spring data jpa和hibernate with Envers,以审计一些具有关系的表。
下面是示例:https://github.com/jcalvopinam/example-envers
我希望它能对你有所帮助,如果你有任何问题,请告诉我。
发布于 2017-02-20 19:03:06
是的,Spring Data JPA和Hibernate Envers的集成没有问题。它跟踪保存、更新和删除操作。你只需要在你的类上面添加@Audited注解。
https://stackoverflow.com/questions/42340179
复制相似问题