@Transactional和@EntityListeners

时间:2017-07-05 14:32:00

标签: java jpa spring-boot transactional entitylisteners

在为我的应用程序编写Spring Boot集成测试时,我遇到了一个有趣的问题。问题是当尝试在jpa存储库上调用delete时,抛出以下异常:

TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call

我的测试是验证某些操作是否根据数据库中的数据执行得当。因此,我的测试直接使用jpa存储库来查找,保存和删除数据。我的实体中很少有人使用@EntityListeners来执行提交后的操作,在某些情况下也可以在提交之前执行操作。

stackoverflow上有一个线程,表明我应该在类或方法上有@Transactional注释。在我的场景中,问题是,如果我添加@Translactional注释,@EntityListeners由于某种原因不会被触发,因此我的测试失败了。所以这就是鸡和蛋的问题。

有没有办法用@Transactional注释触发实体监听器?

0 个答案:

没有答案