美文网首页从零开始学springboot
从零开始学springboot-配置jpa自动建表为innodb

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

作者: 码哥说 | 来源:发表于2019-03-28 15:43 被阅读45次

    前言

    接上章,springboot-jpa-atomikos多数据源分布式事务(https://www.jianshu.com/p/3f7bbbd9fb35
    细心的同学肯定发现了,我们至今为止的案例基本上所有的配置都只有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
    

    解决问题

    总结

    还是官方文档靠谱。

    请关注我的订阅号

    image

    相关文章

      网友评论

        本文标题:从零开始学springboot-配置jpa自动建表为innodb

        本文链接:https://www.haomeiwen.com/subject/aanqbqtx.html