课程
/后端开发
/Java
/2小时学会Spring Boot
@Transactionale为什么事务无法回滚 【已经排查mysql 支持事务】
2018-03-09
源自:2小时学会Spring Boot 6-1
正在回答
新增楼上这个配置之后需要把你原来的表先删除的,因为原来的表创建的数据引擎不是InnoDB
如果已经建表了, 那用过Navicat等工具修改即可如:
MySQL的数据引擎InnoDB支持事务,而MYISAM不支持事务,所以如果生成的表是MYISAM它就不会滚,在配置文件中加入如下配置,让生成的表变成InnoDB的
spring.jpa.hibernate.naming.physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
mysql支持事务,mysql创建表的时候会默认选择engine, 通过show create table 表名来查看该表是否选择了engine 为InnoDB; 如果不是,修改它的engine: alter table 表名称 ENGINE = InnoDB,重启mysql服务 就看到支持事务回滚了
K丶k 提问者
举报
Spring Boot入门视频教程,你将学会使用Spring Boot快速构建应用程序