Hibernate Envers Audit Query-仅检索所有实体的最新修订版

时间:2019-11-13 13:39:21

标签: hibernate-envers spring-data-envers

我想检索最近更改的所有实体的所有最新版本(即数据库中的所有内容)。
以下查询获取特定实体“ MyEntity”的修订

queryObject = auditReader.createQuery()。forRevisionsOfEntity(MyEntity.class,false,true).addOrder(AuditEntity.revisionNumber()。desc())

但是我需要一种机制来获取所有实体的记录,而与特定实体类型无关。

1 个答案:

答案 0 :(得分:0)

查看$str='xxx-xxx-xx\xxxxxxx\x\{xxxx-xxxxx-xxxx}\xxxxx\xxxxx' #remove bracket and split for get array $Array=$str -replace '[{}]' -split '\\' #take all element except 2 last elements, and concat after last elems "{0}.{1}.{2}" -f ($Array[0..($Array.Length -3)] -join '\'), $Array[-2], $Array[-1]

此设置将针对修订实体创建联接表,在该表中将为每个修订号跟踪一组基于字符串的实体名称。有了这些信息,您应该能够使用org.hibernate.envers.track_entities_changed_in_revision API来构建必要的查询,以迭代所有更改。

在伪代码中,它将类似于:

AuditReader#createQuery()
相关问题