springboot項目中,@transactional 無效


 

問題:

springboot項目,依然是使用jpa、Hibernate來操作mysql,涉及到數據庫的操作,就少不了事務。寫了一個接口,用來測試@Transaction注解的作用,發現沒有效果

 

分析:

在項目啟動時候,看到Hibernate: create table hibernate_sequence (next_val bigint) engine=MyISAM,說明是MyISAM引擎,由此我們也就很容易想到MyISAM與InnoDB之間的區別

 

解決:

發現Hibernate默認創建的表是MyISAM引擎,MyISAM引擎不支持事務操作,所以@Transaction注解不會起作用;所以我們要做的就是,在配置文件中添加配置,將數據庫引擎改為InnoDB

添加配置:

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

 

參考鏈接:

https://blog.csdn.net/tianyaleixiaowu/article/details/79468277

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM