我试图将一个使用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