jpa Hibernate -在同一事务中的PostDeleteEventListener内保存实体

67up9zun  于 2023-02-09  发布在  其他
关注(0)|答案(2)|浏览(183)

我想执行软删除(即,将记录移动到另一个存档表)。触发器不是选项。我尝试利用HibernatePostDeleteEventListener来实现这一点。问题是,无法在侦听器本身中使用event.getSession().save(anotherEntity),因为它会被忽略我尝试在保存后添加一个显式的event.getSession().flush()-但这也不起作用,因为flush()方法调用从头开始重新触发相同的Hibernate侦听器,它们会发生冲突。
我知道我可以在一个单独的交易,但我需要在同一个。
有什么选择吗?
先谢了。

sdnqo3pr

sdnqo3pr1#

根据您使用的数据库,用SQL合并语句替换用于删除操作的SQL语句可能是最简单的方法。

hc2pp10m

hc2pp10m2#

由于使用了Spring Data REST-使用其事件支持解决了问题-https://docs.spring.io/spring-data/rest/docs/current/reference/html/#events

相关问题