Maison >base de données >tutoriel mysql >Pourquoi est-ce que j'obtiens l'erreur de syntaxe « type=MyISAM » dans le DDL généré par Hibernate ?

Pourquoi est-ce que j'obtiens l'erreur de syntaxe « type=MyISAM » dans le DDL généré par Hibernate ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-15 07:16:02416parcourir

Why am I getting the

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

Dans le code Java, les utilisateurs peuvent rencontrer l'erreur de syntaxe suivante :

Caused by :`com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException`: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB' server version for the right syntax to use near 'type = `MyISAM`' at line 1

Cette erreur se produit lorsque Hibernate génère une requête de création de table qui inclut le fragment « type = MyISAM ». Cependant, cette syntaxe est obsolète dans MySQL 4.0 et supprimée dans 5.5.

Configuration du dialecte

Le problème vient de l'utilisation du dialecte org.hibernate.dialect.MySQLDialect , qui concerne MySQL 4.x ou version antérieure. Pour MariaDB, il est recommandé d'utiliser l'un des dialectes suivants, selon les versions de MariaDB et Hibernate :

  • org.hibernate.dialect.MariaDBDialect
  • org.hibernate.dialect .MariaDB53Dialect
  • org.hibernate.dialect.MariaDB106Dialect (ou supérieur)

Pour MySQL, ou si les dialectes MariaDB ne sont pas disponibles, pensez à utiliser :

  • org.hibernate.dialect.MySQL5Dialect
  • org.hibernate.dialect.MySQL55Dialect
  • org.hibernate.dialect.MySQL57Dialect
  • org.hibernate.dialect.MySQL8Dialect
  • Variantes de ces dialectes (par exemple, org.hibernate.dialect.MySQL57InnoDBDialect)

Dialectes Hibernate 6

Avec Hibernate 6, les utilisateurs doivent revenir en arrière à utiliser MySQLDialect ou MariaDBDialect car ces dialectes se configureront eux-mêmes en fonction de la version réellement connectée.

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