私はSpringブートJPA Hibernateでカスタムの自己定義の方言を使用するアプリケーションを持っています。Springブートでユーザー定義のDialectが読み込まれない
カスタム方言は次のようになります。
public class JsonPostgreSQL94Dialect extends PostgreSQL94Dialect {
public JsonPostgreSQL94Dialect() {
this.registerColumnType(Types.JAVA_OBJECT, "jsonb");
}
}
この方言は、PostgreSQLの方言を拡張し、jsonbデータ型のサポートが追加されています。
私がアプリケーションを起動すると、Spring Bootを使用して、特定の環境では適切なDialectが読み込まれません。私は、次の方法で方言を定義しようとしている:application.propertiesで
:
spring.jpa.properties.hibernate.dialect=org.test.util.JsonPostgreSQL94Dialect
spring.jpa.database-platform=org.test.util.JsonPostgreSQL94Dialect
さらに私はhibernate.propertiesでこれを定義することができます。ここでは
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
スタートアップは私の定義したDialectを認識しません。デフォルトではPostgreSQLの通常の方言が使用されているため、アプリケーションは認識できないデータ型で失敗します。
私はDialectの定義を上書きしているものがありますか?方言を定義するより適切な方法はありますか?
'application.properties'で' --debug'または 'debug = true'を試しましたか? Hibernate(https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html#boot-features-logging-console-output)に関するさらに詳しい情報を出力することになっています。また、SpringBootの自動設定に関する情報を出力します。これは、あなたのアプリケーションで実行されている自動設定の詳細を示します。 –
また、ローカルでは動作しますが、Cloud Foundryでは動作しない場合は、プロファイル、特に「クラウド」プロファイルを使用してアプリケーションに条件設定があるかどうかを確認してください。 Cloud Foundryにデプロイすると、Java buildpackによって自動的に "クラウド"プロファイルが有効になり、アプリの設定方法が変更されます。 –