Whi*_*cal 6 java spring jta spring-transactions spring-data-jpa
春有3间典型的嵌套事务的传播:REQUIRED,NEW和NESTED.隔离级别类型始终根据并发事务进行描述.但是嵌套案例怎么样?从内到外的默认可见性是什么,另一种方式是什么?设置隔离级别如何影响?
是否有任何经验法则,例如"外部事务总是看到来自内部无法隔离或传播类型的变化"或"内部只能在设置为read_uncommited时看到外部变化".或者根据需要设置等等.?
编辑:我不是在谈论实际的SQL查询,而是持久化上下文.我的意思是,如果我创建一个资源并在嵌套事务模型的另一部分中读取它,我是否会看到更改,无论它是否实际持久存在?一个很好的例子是一个事务工作流,它执行使用repository.save,repository.find等的事务方法
内部事务和外部事务之间没有隔离。它存在的唯一原因是保存点。那东西只是让你回滚内部事务而不回滚外部事务。文档说:
\n\n\n\n\nPROPAGATION_NESTED 使用具有多个可以回滚到的保存点的单个物理事务。此类部分回滚让内部事务范围触发其范围的回滚,而外部事务能够继续物理事务,尽管某些操作已回滚。此设置通常映射到 JDBC 保存点,因此它仅适用于 JDBC 资源事务。参见 Spring\xe2\x80\x99s
\nDataSourceTransactionManager。
UPD: \n您还可以找到:
\n\n\n\n事务隔离级别。仅适用于或的传播设置\
\nREQUIREDnREQUIRES_NEW。
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |