代码之家  ›  专栏  ›  技术社区  ›  Kenovo

强制Hibernate在Spring引导自动配置中使用用户定义的方言

  •  0
  • Kenovo  · 技术社区  · 6 年前

    我试图将一个使用MariaDB数据库并自动配置的Spring引导应用程序部署到a Cloud foundry平台,我的应用程序在Pivotal CFY中按预期工作,但是当我将其部署到一个内部CFY平台时,我遇到了一个与Hibernate方言相关的错误。

    INFO 13 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
    ....
    Caused by: java.sql.SQLSyntaxErrorException: (conn=1279230) You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'type=MyISAM' at line 1
    

    我想排除使用用户定义的Hibernate方言的spring引导自动配置。

    我在中指定了我的方言和jpa属性应用程序.属性使用:

    spring.jpa.generate-ddl=true
    spring.jpa.hibernate.ddl-auto=create-drop
    spring.jpa.properties.hibernate.dialect.storage_engine=innodb
    spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB103Dialect
    

    在属性文件

    hibernate.dialect = org.hibernate.dialect.MariaDB10Dialect
    

    但当我运行我的应用程序时,我在日志中看到,spring自动配置覆盖了我指定的方言。

       2018-11-07T11:17:05.57+0100 [APP/PROC/WEB/0] OUT 2018-11-07 10:17:05.577  INFO 13 --- [           main] org.hibernate.cfg.Environment            : HHH000205: Loaded properties from resource hibernate.properties: {hibernate.dialect=org.hibernate.dialect.MariaDB10Dialect, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=org.mariadb.jdbc.Driver}
       2018-11-07T11:17:06.37+0100 [APP/PROC/WEB/0] OUT 2018-11-07 10:17:06.368  INFO 13 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
    
    0 回复  |  直到 6 年前