在springboot中使用非同步任務@async 或 使用quartz任務排程時,出現事務丟失問題,事物丟失不會影響資料查詢(select),但是當進行增刪改操作時,因為事物問題,無法執行結果到資料庫。
使用@transactional註解也無法注入事務。
發現問題如下:
我們在配置事務時,缺省會使用datasourcetransactionmanager
@bean
public datasourcetransactionmanager transactionmanager(datasource datasource)
datasourcetransactionmanager 也繼承了platformtransactionmanager,但是通過檢視jpa的官方文件我們可以發下,jpa使用的事務管理器為jpatransactionmanager
官方文件如下:
@configuration
@enablejparepositories
@enabletransactionmanagement
@bean
public datasource datasource()
@bean
public localcontainerentitymanage***ctorybean entitymanage***ctory()
@bean
public platformtransactionmanager transactionmanager(entitymanage***ctory entitymanage***ctory)
}
@enabletransactionmanagement開啟事務jpa 2.x版本預設使用事務管理器為jpatransactionmanager ,不需要去配置事務管理器
Spring Boot JPA 命名規則
一 常用規則速查 1 and 並且 2 or 或 3 is,equals 等於 4 between 兩者之間 5 lessthan 小於 6 lessthanequal 小於等於 7 greaterthan 大於 8 greaterthanequal 大於等於 9 after 之後 時間 10 be...
SpringBoot JPA常用註解
就像 table註解用來標識實體類與資料表的對應關係類似,column註解來標識實體類中屬性與資料表中字段的對應關係。column name broker id columndefinition bigint 11 nullable false private long brokerid id co...
Spring Boot JPA訪問Mysql示例
上篇演示了通過m en構建spring boot 專案,引用web模組啟動應用,完成簡單的web 應用訪問,本章內容在此基礎上面加入資料訪問與埠修改,下文 與演例 本用例純手工測試通過,放心入坑 修改預設埠 在src main resources下加入application.properties內容...