gpt4 book ai didi

hibernate-envers - Hibernate Envers-通过其 ID 获取实体的所有实体、修订号、修订日期和修订类型

转载 作者:行者123 更新时间:2023-12-04 23:15:03 27 4
gpt4 key购买 nike

使用 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;
}

是否可以通过一次查询获得它?

我应该将这些字段直接添加到实体吗?

最佳答案

我建议你看看使用 forRevisionsOfEntity .您可以使用 AuditReader 访问此方法。界面如下:

auditReader.createQuery().forRevisionsOfEntity( 
YourAuditEntityClass.class,
false, // false returns an array of entity and audit data
true // selects the deleted audit rows
);

这里重要的方法参数是第二个参数,因为它会影响返回的 Object类型。当其 true ,您将收到每个修订版的实际审计实体实例;然而,当它的 false您将收到 Object[]数组的值是:
  • 实体实例。
  • 修订实体实例(您可以在其中获取修订号和日期)
  • 修订类型,例如添加、修改、删除。

  • 哈。

    关于hibernate-envers - Hibernate Envers-通过其 ID 获取实体的所有实体、修订号、修订日期和修订类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44752324/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com