如何解决Hibernate Envers:从审计表中删除修订条目
我目前正在使用 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 举报,一经查实,本站将立刻删除。