【发布时间】:2016-01-31 16:33:02
【问题描述】:
假设我们有一个经过审计的实体,例如:
@Entity
@Audited
public class Person {
@Id
private Long id;
private String name;
}
在存储/更新数百条记录后,我需要在给定一组ids 的情况下获取最新修改的实体。鉴于 Envers 表逻辑,它会很简单:
SELECT MAX(R.REVTSTMP) FROM PERSON_AUD P JOIN REVINFO R ON P.REV = R.REV
WHERE P.ID IN (12, 35, 143, 151, 165, 188, 234, 251);
但我找不到通过 JPA 或 Envers API 获取此信息的方法。请注意,我正在寻找一种“Enver 的方式”来做到这一点,试图避免使用原生 SQL(加上审计表存储在与实体目录不同的目录中)。
【问题讨论】:
-
现在我正在获取所有实体并使用列表中的流计算最新的修订日期,但它的效率非常低,因为我需要加载所有实体。
标签: java hibernate jpa hibernate-envers