我用Envers来审计我的实体。但是,当我使用AuditQuery获取实体和关联实体的修订时,除了以下例外,它会失败:
could not resolve property: userid_id of: com.envers.domain.vo.UserOrgVO_AUD [select e__ from com.envers.domain.vo.UserOrgVO_AUD e__ where e__.userid_id = :userid_id and e__.originalId.REVISION_ID.id = (select max(e2__.originalId.REVISION_I
我正在尝试检索所有实体的最新修订版,这些实体还没有被删除。在SQL中这样做非常简单,有一个子选择:
select * from article_aud aud1
where rev in
(select max(rev) from article_aud aud2
where aud1.id = aud2.id)
and revtype < 2
但我不知道如何通过envers实现这一点。我从AuditReader开始,但没有找到选择不同对象的方法。
public List<Object[]> findLatestArticleRevisions(){
List&
当我试图让已审计的实体引用未被审计的实体时,我遇到了问题。在我们的应用程序中,某些实体是在没有使用hibernate的情况下引导的,这些实体是我们的元模型,不需要进行审计。
工作示例:
public class A {
private String id;
private List<B> attributeReferences;
}
public class B {
private String id;
private A attributeReference;
}
如果我执行以下代码:
A rev1 = getAuditReader().find(A.class
我想使用Envers来审计一个嵌入式组件的多对多关系,但是我在MappingException上遇到了问题,说ComponentType不受支持。这是堆栈跟踪的相关部分:
Caused by: org.hibernate.MappingException: Type not supported: org.hibernate.type.ComponentType
at org.hibernate.envers.configuration.metadata.IdMetadataGenerator.addIdProperties(IdMetadataGenerator.java:74