使用Hibernate Envers我希望通过其ID获取实体的所有实体,修订号,修订日期和修订类型.
目前我这样做是为了获取实体,修订号和修订日期:
public List<Alumno> obtenerAuditoriaAlumno(Long idAlumno) {
AuditReader auditReader = AuditReaderFactory.get(entityManager);
List<Number> revisionNumbers = auditReader.getRevisions(Alumno.class, idAlumno);
List<Alumno> auditoriaAlumno = new ArrayList<Alumno>();
for (Number rev : revisionNumbers) {
Alumno alumno = auditReader.find(Alumno.class, idAlumno, rev);
Date revisionDate = auditReader.getRevisionDate(rev);
alumno.setRevisionNumber(rev.intValue());
//alumno.setRevisionType(revisionType); // GET THIS
alumno.setRevisionDate(revisionDate);
auditoriaAlumno.add(alumno);
}
return auditoriaAlumno;
}
Run Code Online (Sandbox Code Playgroud)
是否可以通过一个查询获得它?
我应该将这些字段直接添加到实体吗?
我建议你看一下使用forRevisionsOfEntity.您可以使用以下AuditReader界面访问此方法:
auditReader.createQuery().forRevisionsOfEntity(
YourAuditEntityClass.class,
false, // false returns an array of entity and audit data
true // selects the deleted audit rows
);
Run Code Online (Sandbox Code Playgroud)
这里重要的方法参数是第二个参数,因为它会影响返回的Object类型.当它true,您将返回每个修订的实际审计实体实例; 但是,当它false返回时,你会返回一 Object[]组数值为:
HTH.
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |