Ungültiger Syntaxfehler „type= MyISAM“ in der von Hibernate generierten DDL
Beim Erstellen einer Tabelle in Hibernate mit MySQL als zugrunde liegende Datenbank, Möglicherweise wird eine Fehlermeldung angezeigt, die besagt: „Sie haben einen Fehler in Ihrer SQL-Syntax; überprüfen Sie das Handbuch, das Ihrer MariaDB-Serverversion entspricht, um die richtige Syntax für die Verwendung in der Nähe des Typs zu finden.“ = MyISAM' in Zeile 1."
Ursache:
Dieser Fehler tritt normalerweise auf, weil der zum Generieren der Tabellendefinition verwendete MySQLDialect-Dialekt nicht für die Version von MySQL geeignet ist oder MariaDB, die Sie verwenden. In Hibernate-Versionen 5.x und früher ist MySQLDialect für MySQL 4.x oder früher konzipiert, das die Syntax „type = MyISAM“ enthielt. In MySQL 5.5 und höher ist diese Syntax jedoch veraltet und muss durch „ENGINE = MyISAM“ ersetzt werden.
Lösung:
Um diesen Fehler zu beheben, müssen Sie sollte den von Hibernate verwendeten Dialekt auf einen aktualisieren, der mit Ihrer Datenbankversion kompatibel ist:
Konfiguration:
In der bereitgestellten Konfigurationsdatei verwenden Sie org.hibernate.dialect.MySQLDialect, das nicht für MySQL 5.5 oder höher geeignet ist. Sie müssen die Konfiguration aktualisieren, um einen der oben genannten kompatiblen Dialekte zu verwenden. Zum Beispiel:
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
Hinweis für Hibernate 6:
In Hibernate 6 konfigurieren sich die Dialekte selbst basierend auf der tatsächlich verbundenen Version. Wenn Sie Hibernate 6 verwenden, sollten Sie daher wieder MySQLDialect oder MariaDBDialect verwenden.
Das obige ist der detaillierte Inhalt vonWarum generiert Hibernate eine ungültige „type=MyISAM'-Syntax in MySQL/MariaDB und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!