18.1.从零开始学springboot-配置jpa自动建表为innodb

前言

接上章,springboot-jpa-atomikos多数据源分布式事务
细心的同学肯定发现了,我们至今为止的案例基本上所有的配置都只有application.yml一个文件,为何上章多了一个hibernate.properties文件,此文件是干啥的? 能否统一到application.yml中去。

原因

先说明下博主的环境

springboot2.1.3 release
mysql 5.7

好吧,博主解释下,关于hibernate.properties这个配置文件,是为了解决JPA自动生成表引擎为myisam的,熟悉mysql的都知道,myisam引擎并不支持事务,只有innodb引擎才支持事务的处理。为了解决JPA自动生成的表为myisam引擎,博主整整花了半个下午,是的,整个互联网充斥着复制粘贴的过时解决方案。

形如这样的
让你在application.properties中加上

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

或者加上

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57InnoDBDialect

当然还有其它乱七八糟的解决方案,博主不一一罗列了,博主为了解决jpa自动生成的表为myisam的问题,逐一试了个遍,结果根本解决不了问题,最后在官方文档里发现,原来,在新版的springboot里,形如MySQLInnoDBDialect已经被弃用了,像博主使用的是当前最新版的2.1.3 release使用这种方式显然是做无用功。

解决方案

新增 hibernate.properties

hibernate.dialect.storage_engine=innodb

解决问题

总结

还是官方文档靠谱。

请关注我的订阅号

18.1.从零开始学springboot-配置jpa自动建表为innodb_第1张图片

你可能感兴趣的:(SB修炼纪,从零开始学springboot)