在spring,jpa,hibernate-envers(历史记录)上有应用
我有两个表UserRecord
和UserRecord_AUD
(由hibernate-enver创建)
在Jpa中,我有crudRepository从数据库中读取数据。
我的crudRepository仅为UserRecord
表创建。
如何使用UserRecord_AUD
表中的userRecordRepository获取所有记录?
所以,我的存储库
@Repository
public interface UserRepository extends CrudRepository<UserRecord, String> {}
我试图创建自定义本机方法
@Query(value = "select h.PR_KEY, h.name, h.surname, h.age, h.REV as VERSION, h.META from USRERECORD_AUD h where h.PR_KEY in (?1)", nativeQuery = true)
List<USerRecord> findHistoryByIds(List<String> ids);
但是,如果我向同一用户写入3次(1次写入和2次更新),我希望
UserRecord
表中只有1条记录(新鲜),历史记录中有2条记录
我的预期结果是从UserRecord_AUD
获得所有记录
____________________________
11-22 Tanya Ivanova 22 1 ...
11-22 Tanya Ivanova 4 2 ...
11-22 Tanya Ivanova 23 3 ...
____________________________
我的实际结果从UserRecord表中返回了3条相同的记录。
____________________________
11-22 Tanya Ivanova 23 3 ...
11-22 Tanya Ivanova 23 3 ...
11-22 Tanya Ivanova 23 3 ...
____________________________