问题描述
我目前正在使用 Hibernate Envers 和 Spring Data,当相应的实体被删除时,我试图删除审计表中的条目。我知道这不是 Envers 的常见用例,但我的项目需要这种行为。
但是,当我尝试删除实体和修订条目时,会在 revinfo 和 _aud 表中插入一个新的删除条目。似乎 envers 在删除相应的修订条目后收到实体的删除事件。有没有人知道如何解决这个问题?
服务:
@Transactional
public void delete(UUID personId) {
...
final Person person= findById(personId);
removeExistingReferences(person);
personRepository.deleteById(personId);
...
personRepository.deleteRevInfo(revId);
}
存储库:
@Repository
public interface PersonRepository extends RevisionRepository<Person,UUID,Integer>,JpaRepository<Person,UUID> {
...
@Modifying()
@Query(value = "DELETE FROM revinfo WHERE rev = :id",nativeQuery = true)
void deleteRevInfo(@Param("id") Integer id);
}
日志:
Hibernate: delete from person where id=?
Hibernate: DELETE FROM person_aud WHERE id = ?
Hibernate: DELETE FROM revinfo WHERE rev = ?
Hibernate: select nextval ('hibernate_sequence')
Hibernate: insert into revinfo (revtstmp,rev) values (?,?)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)