1. ホーム
  2. java

[解決済み] JDBC タイプの方言マッピングがありません。1111

2022-02-25 20:31:07

質問

データベースとしてMySQLを使用するSpring JPAアプリケーションに取り組んでいます。すべてのspring-jpaライブラリ、hibernate、およびmysql-connector-javaがロードされていることを確認しました。

mysql 5のインスタンスを動かしています。以下は、私のapplication.propertiesファイルの抜粋です。

spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect

spring.datasource.url=jdbc:mysql://localhost/mydatabase
spring.datasource.username=myuser
spring.datasource.password=SUPERSECRET
spring.datasource.driverClassName=com.mysql.jdbc.Driver

統合テストを実行すると、spring は正常に起動しますが、hibernate SessionFactory の作成で例外が発生し、失敗します。

org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111

方言はMysql5Dialectであるべきだと思います。InnoDBを明示するもの、バージョン5を示さない2つの方言オプションも試してみました。しかし、いつも同じ 'No Dialect mapping for JDBC type: 1111'というメッセージが表示されます。 私の application.properties ファイルは test/resources ソースフォルダにあります。それはJUnitテストランナーによって認識されます(私は以前、その中にタイプミスがあるため例外を得ました)。

私の設定しているプロパティは間違っているのでしょうか?これらのプロパティ名に関する公式ドキュメントは見つかりませんでしたが、このstackoverflowの回答でヒントを見つけました。 https://stackoverflow.com/a/25941616/1735497

回答お待ちしております。

ちなみに、アプリケーションはすでにspring bootを使用しています。

どのように解決するのですか?

SubOptimal さんのコメントをもとにお答えします。

エラーメッセージは、実際には、1つの列のタイプがhibernateによってデータベースのタイプにマッピングできないことを述べています。 私の場合、それは java.util.UUID タイプは、私がいくつかのエンティティで主キーとして使用しています。アノテーションを適用するだけです。 @Type(type="uuid-char") (postgresの場合 @Type(type="pg-uuid") )