Kau*_*ele 1 spring transactions nested
我编写了下面的代码来执行以下活动,我使用 Spring 类创建了一个事务。插入一行。创建了其他交易。插入另一行。已提交的外部事务。回滚内部事务。
TransactionStatus trxstsOuter= dsTrxMngr.getTransaction(null);
jdbcTemplate.update("insert into kau_emp values(6,'xyz' )");
TransactionStatus trxstsInner= dsTrxMngr.getTransaction(null);
jdbcTemplate.update("insert into kau_emp values(7,'pqr' )");
dsTrxMngr.commit(trxstsOuter);
System.out.println("trxstsOuter.isCompleted()" + trxstsOuter.isCompleted());
System.out.println("trxstsInner.isCompleted()" + trxstsInner.isCompleted());
dsTrxMngr.rollback(trxstsInner);
System.out.println("trxstsInner.isCompleted()" + trxstsInner.isCompleted());
Run Code Online (Sandbox Code Playgroud)
我观察到这两行都已提交给数据库!输出是
trxstsOuter.isCompleted()true
trxstsInner.isCompleted()false
trxstsInner.isCompleted()true
Run Code Online (Sandbox Code Playgroud)
这是正确的行为吗?在允许外部事务提交之前,不应该首先提交/回滚内部事务吗?如果外部事务已提交,内部事务的回滚是否会引发错误?
| 归档时间: |
|
| 查看次数: |
5844 次 |
| 最近记录: |