假設我們有一個審計單位如:在休眠Envers最新修改的實體日期
@Entity
@Audited
public class Person {
@Id
private Long id;
private String name;
}
和存儲/更新幾百的記錄後,我需要獲得最新修改的實體給定一組id
s。鑑於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(加上審計表存儲在實體的一個單獨的目錄中)。
現在我正在獲取所有實體,並使用列表中的流來計算最新修訂日期,但由於我需要加載所有實體,因此效率非常低。 –