Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens une erreur de syntaxe \'type=MyISAM\' dans Hibernate DDL ?

Pourquoi est-ce que j'obtiens une erreur de syntaxe \'type=MyISAM\' dans Hibernate DDL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-15 02:33:02860parcourir

Why Am I Getting a

Erreur de syntaxe invalide "type=MyISAM" dans le DDL généré par Hibernate

Le message "Vous avez une erreur dans votre syntaxe SQL ; vérifiez le manuel qui correspond à la version de votre serveur MariaDB pour connaître la bonne syntaxe à utiliser près de 'type = MyISAM' à la ligne 1", une erreur dans le DDL généré par Hibernate se produit généralement en raison d'une utilisation de l'attribut "type" obsolète. Voici une analyse et une solution :

Ursache

L'attribut "type" en SQL est utilisé pour spécifier le moteur de stockage d'une table. Dans MySQL 4.x et versions antérieures, il était courant d'utiliser "type=MyISAM". Cependant, cet attribut a été obsolète dans MySQL 4.0 et supprimé dans la version 5.5.

Lösung

Pour résoudre ce problème, vous devez utiliser le dialecte correct dans votre configuration Hibernate. Selon votre version de MariaDB et Hibernate, vous devez utiliser l'un des dialectes suivants :

  • MariaDB :

    • org. hibernate.dialect.MariaDBDialect (pour MariaDB 10.0 et plus tôt)
    • org.hibernate.dialect.MariaDB53Dialect (pour MariaDB 10.1 et versions ultérieures)
    • org.hibernate.dialect.MariaDB106Dialect (pour MariaDB 10.6 et versions ultérieures) plus tard)
  • MySQL :

    • org.hibernate.dialect.MySQL5Dialect (pour MySQL 5.0 et versions ultérieures)
    • org.hibernate.dialect.MySQL55Dialect (pour MySQL 5.5 et versions ultérieures)
    • org.hibernate.dialect.MySQL57Dialect (pour MySQL 5.7 et versions ultérieures)
    • org.hibernate.dialect.MySQL8Dialect (pour MySQL 8.0 et versions ultérieures)

Beispiel

Dans votre fichier de configuration Hibernate, vous pouvez spécifier le dialecte correct comme suit :

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

Hinweis

Avec Hibernate 6 , vous devez utiliser MySQLDialect ou MariaDBDialect, car ces dialectes se configureront automatiquement en fonction de la base de données connectée version.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn