@Transational
2021-06-20 13:23:09 0 举报
Transational 事务
作者其他创作
大纲/内容
开启事务
AbstractPlatformTransactionManager#commitspring-orm 项目 JpaTransationManager#doCommit()hibernate 项目 TransationImap#commit()
HibernateJpaDialect#beginTransaction
TransactionAspectSupport#commitTransactionAfterReturning
底层依赖于hibernate orm 框架来开启事务hibernate-enitymanager项目、hibernate-core项目TransationImp.begin()SessionImpl.beginTransation()方法
父类调用
spring-tx项目TransactionAspectSupport#invokeWithinTransaction()1:开启事务;2:执行业务逻辑;3:提交/回滚事务
业务逻辑是否报错
底层依赖jdbc的Api完成事务提交Connection.commit()
spring-tx项目TransactionInterceptor#invoke()
提交/回滚
没报错提交事务
报错回滚事务
返回一个JpaTransactionObject
JpaTransactionManager#doGetTransaction
第一步
invocation.proceedWithInvocation();
执行业务逻辑
底层依赖jdbc的Api完成事务回滚Connection.rollback()
TransactionAspectSupport#createTransactionIfNecessary()开启事务
hibernate orm框架底层依赖于jdbc基于jdbc 打开一个事务Connection.setAutoCommit(false)
TransactionAspectSupport#completeTransactionAfterThrowing
AbstractPlatformTransactionManager#getTransaction
spring-orm项目JpaTransactionManager#doBesgin()
第二步
0 条评论
下一页