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
Libérer: 2024-11-15 02:33:02
original
858 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal