mybatis 事物

項目中數據訪問用的是mybatis,原本用的都是聲明式事物,即 @Transactional。spring

最近碰到一個問題,須要事物是在接口A中某一個函數fun()內提交的。sql

剛開始想着把事物聲明放到 fun()的方法上聲明,發現無效,查了資料發現 @Transactional 是基於AOP實現的,只對對外接口有效,對內部方法無效。編程

spring中是支持聲明式事物和編程式事物的,後來就想到用編程式事物。mybatis

一開始想到的是使用sqlSessionFactory,以下app

可是操做過程發現每一個mapper都須要手動獲取比較麻煩,關聯到一兩個mapper還好,mapper多了,操做就比較繁瑣了函數

後來查資料發現了 PlatformTransactionManager,使用方法以下orm

功能正常後又查了下資料,發現spring的編程式事物更多的是推薦使用 TransactionTemplate,試了下感受寫起來比PlatformTransactionManager 複雜點,但不須要額外的組件注入blog

相關文章
相關標籤/搜索