失效原因: SpringBoot 2.0.5版本使用JPA自动创建表时,默认表引擎为MyISAM,该引擎不支持事务导致@Transactional失效.
1. 查看已有数据表引擎
show create table 表名
2. 修改表引擎为InnoDB
alter table 表名 engine=InnoDB
3. 在配置文件中修改
将spring.jpa.database-platform:设置为org.hibernate.dialect.MySQL5InnoDBDialect,后续创建的表引擎均为InnoDB
本文介绍了解决SpringBoot2.0.5版本中,因使用JPA默认创建MyISAM表引擎不支持事务而导致@Transactional失效的问题。通过修改表引擎为InnoDB,或在配置文件中设置spring.jpa.database-platform为org.hibernate.dialect.MySQL5InnoDBDialect,确保后续创建的表支持事务。

3903

被折叠的 条评论
为什么被折叠?



