@Audited
; revinfo
; public List buscar(Class clazz,Usuario usuario,java.util.Date inicio,java.util.Date fim){ GregorianCalendar novo = new GregorianCalendar(); novo.setTime(FIM); novo.add(Calendar.DAY_OF_MONTH,1);
AuditReader reader = AuditReaderFactory.get(getEm());
return reader.createQuery()
.forRevisionsOfEntity(clazz, false, true)
.add(AuditEntity.revisionProperty("usuario").eq(usuario))
.add(AuditEntity.revisionProperty("revtstmp").between(inicio.getTime(), novo.getTime().getTime()))
.addOrder(AuditEntity.property("id").asc())
.getResultList();
}
但所有关系都是懒惰的,包括@ManyToOne。
我发现很多关于@OneToMany问题的帖子,但事实并非如此
如何访问这些属性?
PS:我试过,但无法突出显示代码。
答案 0 :(得分:2)
Envers返回的对象中的所有关系都是惰性的,无论它是一对多还是多对一。
在一个对象中,要访问相关对象的属性,只需调用getter:)
在查询中,这是不可能的。不支持连接,也不管关系类型如何。您只能约束相关实体的ID,但不能约束其属性。
答案 1 :(得分:0)
从hibernate-envers版本4.x开始,您不需要配置监听器。您可以使用@Audited轻松审核实体。