我有一个应用程序,它使用一种自定义的方言和Spring Boot JPA Hibernate。
public class JsonPostgreSQL94Dialect extends PostgreSQL94Dialect {
public JsonPostgreSQL94Dialect() {
this.registerColumnType(Types.JAVA_OBJECT, "jsonb");
}
}
该方言扩展了PostgreSQL方言,并添加了对jsonb数据类型的支持。
现在,当我使用Spring Boot启动应用程序时,在某些环境中,它不会加载适当的方言。我试着用以下方式定义方言:
正在应用中。属性:
spring.jpa.properties.hibernate.dialect=org.test.util.JsonPostgreSQL94Dialect
spring.jpa.database-platform=org.test.util.JsonPostgreSQL94Dialect
此外,我可以在hibernate中定义这一点。属性:
hibernate.dialect=org.test.util.JsonPostgreSQL94Dialect
以下是我使用Java Buildpack在Cloud Foundry中启动应用程序的春季启动日志:
2017-11-13T18:03:54.79+0000 [APP/PROC/WEB/1] OUT 2017-11-13 18:03:54.792 INFO 19 --- [ main] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect
启动程序将无法识别我定义的方言。它默认为正常的PostgreSQL方言,这会导致我的应用程序在无法识别的数据类型上失败。
Spring Boot中有什么东西覆盖了我对方言的定义吗?有没有更合适的方法来定义方言?