ホームページ >データベース >mysql チュートリアル >Hibernate DDL で「type=MyISAM」構文エラーが発生するのはなぜですか?

Hibernate DDL で「type=MyISAM」構文エラーが発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-15 02:33:02867ブラウズ

Why Am I Getting a

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

「SQL 構文にエラーがあります。SQL 構文にエラーがあります。 MariaDB サーバーのバージョンに対応するマニュアルを参照して、行 1 の「type = MyISAM」付近で使用する正しい構文を確認してください。Hibernate によって生成される DDL のエラーは、通常、非推奨の「type」属性の使用が原因で発生します。以下に分析と解決策を示します。

Ursache

SQL の「type」属性は、テーブルのストレージ エンジンを指定するために使用されます。 MySQL 4.x 以前では、「type=MyISAM」を使用するのが一般的でした。ただし、この属性は MySQL 4.0 で非推奨となり、5.5 で削除されました。

Lösung

この問題を解決するには、Hibernate 設定で正しい方言を使用する必要があります。 MariaDB と Hibernate のバージョンに応じて、次の方言のいずれかを使用する必要があります:

  • MariaDB:

    • org。 hibernate.dialect.MariaDBDialect (MariaDB 10.0 以前の場合)
    • org.hibernate.dialect.MariaDB53Dialect (MariaDB 10.1 以降の場合)
    • org.hibernate.dialect.MariaDB106Dialect (MariaDB 10.6 以降の場合)後で)
  • MySQL:

    • org.hibernate.dialect.MySQL5Dialect (MySQL 5.0 以降の場合)
    • org.hibernate.dialect.MySQL55Dialect (MySQL 5.5 以降の場合)
    • org.hibernate.dialect.MySQL57Dialect (MySQL 5.7 以降の場合)
    • org.hibernate.dialect。 MySQL8Dialect (MySQL 8.0 以降の場合)

Beispiel

Hibernate 設定ファイルでは、次のように正しい方言を指定できます。 :

<property name="hibernate.dialect">org.hibernate.dialect.MariaDBDialect</property>

Hinweis

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

以上がHibernate DDL で「type=MyISAM」構文エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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