在项目开发过程中,使用了Spring data jpa自动创建表。但是默认情况下,创建出来的表类型为MyISAM。
(MySQL数据库默认的存储引擎类型是MyISAM,这种存储引擎类型不支持事务处理。)
导致在项目测试中发现异常后,事务无回滚动作。
解决办法:
1. 在Spring data jpa中的配置中添加database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
jpa:
database: MYSQL
hibernate:
ddl-auto: update
show-sql: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
2.在navicat中数据库---》表---》单机表名在下边可以出现表类型。当为其他非InnoDB类型时就需要修改。如果涉及表很多且已经有大量数据。批量修改办法就是将表数据导出SQL,然后删除数据库后重新创建,把第一步的配置改后,重启项目,让项目在新建的数据库上去重新创建表,然后再导入数据。