ホームページ  >  記事  >  データベース  >  Hibernate でテーブルを作成するときに、「SQL 構文にエラーがあります...」というメッセージとともに「MySQLSyntaxErrorException」が発生するのはなぜですか?

Hibernate でテーブルを作成するときに、「SQL 構文にエラーがあります...」というメッセージとともに「MySQLSyntaxErrorException」が発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-21 06:50:13388ブラウズ

Why am I getting a

Hibernate によって生成された DDL の無効な構文エラー "type=MyISAM"

問題:

Hibernate でテーブルを作成する場合、 「MySQLSyntaxErrorException」が発生し、「SQL 構文にエラーがあります。MariaDB サーバーのバージョンに対応するマニュアルを参照して、1 行目の 'type = MyISAM' 付近で使用する正しい構文を確認してください。」

原因:

非推奨の「TYPE=MYISAM」フラグメントが生成されます設定された Hibernate 方言による DDL ステートメント。このフラグメントは、MySQL 5.5 以降または MariaDB ではサポートされていません。

解決策:

この問題を解決するには、以下と一致する適切な Hibernate ダイアレクトを構成する必要があります。データベース サーバーのバージョン。

MariaDB の場合は、バージョンと Hibernate バージョンに応じて、次のいずれかを使用します。方言:

  • org.hibernate.dialect.MariaDBDialect
  • org.hibernate.dialect.MariaDB53Dialect
  • org.hibernate.dialect.MariaDB106Dialect (または上位)

MySQL の場合、または Hibernate バージョンで MariaDB 方言が使用できない場合は、これらの方言のいずれかを使用します (またはバリアント):

  • org.hibernate.dialect.MySQL5Dialect
  • org.hibernate.dialect.MySQL55Dialect
  • org.hibernate.dialect.MySQ L57Dialect
  • org.hibernate.dialect.MySQL8Dialect
  • org.hibernate.dialect.MySQL57InnoDBDialect

注:

とHibernate 6 では、MySQLDialect または MariaDBDialect の使用に戻すことができます。これらの方言は、接続されているデータベースのバージョンに基づいて自動的に設定されるためです。

以上がHibernate でテーブルを作成するときに、「SQL 構文にエラーがあります...」というメッセージとともに「MySQLSyntaxErrorException」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。