实体未按预期提交(带Panache的Hibernate ORM)
在流程执行期间,我打开了两个事务:实体未按预期提交(带Panache的Hibernate ORM),hibernate,quarkus,Hibernate,Quarkus,在流程执行期间,我打开了两个事务: 一个用于创建对象并通知进程已开始 另一种方法是更改在第一个事务中创建的对象,通知流程已完成 但是,在执行第二个事务方法之后,如果查询数据库,则该值尚未更新。我所期望的是,在@transactional注释的方法执行完成之后,对象已经提交到数据库 本项目再现了这种情况: 重要线路: 编辑1:我测试了UserTransaction和TransactionManager类,但同样的问题也出现了 编辑2:在transactionTest方法中我添加了@t
- 一个用于创建对象并通知进程已开始李>
- 另一种方法是更改在第一个事务中创建的对象,通知流程已完成李>
编辑1:我测试了UserTransaction和TransactionManager类,但同样的问题也出现了
编辑2:在transactionTest方法中我添加了@transactional(不受支持)注释,在persist和update方法中我添加了@transactional(REQUIRES_NEW)注释。结果没有改变。如果将
@Transactional
移动到transactionTest()
方法,会发生什么 需要默认事务传播级别。因此,如果一个方法(用@Transactional注释)调用另一个方法(用@Transactional注释),那么第二个方法将使用第一个方法的现有事务,而不是创建新的事务。为了强制第二个方法执行新事务,您需要将第二个方法的传播级别更改为REQUIRES_new。也就是说,我从来没有找到这样的用例
请参见流程成功运行,但在单个事务中运行,而不是像我预期的那样在3中运行。我执行了以下测试:1。在transactionTest方法中,我添加了@Transactional(不支持)注释;2.在persist和update方法中,我添加了@Transactional(REQUIRES_NEW)注释;结果没有改变。。