我正在使用Hibernate envers 3.6.3.Final . 我可以审计表,我可以看到 _audit
表填充了 revision_number
, revision_type
和实体数据 . 我正在创建一个历史页面,我想在其中显示所有修订条目,以便当用户单击修订版ID时,我可以显示实体数据以及修订版本类型,即添加,删除或修改它 . 我正在尝试使用 AuditQuery
,但我不知道如何获取给定修订版和给定实体类的 revision_type
信息 . 可以在 AuditQuery
中做到吗?
我可以通过编写Hibernate查询来获取'RevisionType' info . 但我想重用任何现有的框架api . 换句话说,我将不同的'RevisionType'作为标准传递给 AuditQuery
(即多次查询DELETE,INSERT和UPDATE)并检查我是否得到任何结果,但这不是有效的方法 .
1 回答
为了它现在的 Value . 我有同样的问题,并能够通过使用AuditQueryCreator#forRevisionsOfEntity方法得到修订类型,如下所示:
这将返回有关指定修订的更改的数组三元组列表 . 数组三元组包含实体,实体信息以及最后的修订类型 .
确保将AuditQueryCreator#forRevisionsOfEntity的selectEntitiesOnly参数设置为false . 如果设置为true,则该方法仅返回实体对象列表 .
这里使用Hibernate Envers版本4.2.2 .