Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实体未按预期提交(带Panache的Hibernate ORM)_Hibernate_Quarkus - Fatal编程技术网

实体未按预期提交(带Panache的Hibernate ORM)

实体未按预期提交(带Panache的Hibernate ORM),hibernate,quarkus,Hibernate,Quarkus,在流程执行期间,我打开了两个事务: 一个用于创建对象并通知进程已开始 另一种方法是更改在第一个事务中创建的对象,通知流程已完成 但是,在执行第二个事务方法之后,如果查询数据库,则该值尚未更新。我所期望的是,在@transactional注释的方法执行完成之后,对象已经提交到数据库 本项目再现了这种情况: 重要线路: 编辑1:我测试了UserTransaction和TransactionManager类,但同样的问题也出现了 编辑2:在transactionTest方法中我添加了@t

在流程执行期间,我打开了两个事务:

  • 一个用于创建对象并通知进程已开始
  • 另一种方法是更改在第一个事务中创建的对象,通知流程已完成
但是,在执行第二个事务方法之后,如果查询数据库,则该值尚未更新。我所期望的是,在@transactional注释的方法执行完成之后,对象已经提交到数据库

本项目再现了这种情况:

重要线路:


编辑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)注释;结果没有改变。。