springboot项目中,@transactional 无效

Posted 裸奔的太阳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

以上是关于springboot项目中,@transactional 无效的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot.11.IDEA中如何快速复制当前父项目中的一个Module为新的项目

springboot项目怎么调用深度算法

怎么查看一个springboot项目的源代码在哪?

解决springboot项目请求出现非法字符问题

docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

bootstrap.yml 在新建springboot项目中不生效