Invalid syntax error “type= MyISAM” in DDL generated by Hibernate

The problem is that – in Hibernate 5.x and earlier – the dialect org.hibernate.dialect.MySQLDialect is for MySQL 4.x or earlier. The fragment TYPE=MYISAM that is generated by this dialect was deprecated in MySQL 4.0 and removed in 5.5.

Given that you use MariaDB, you need to use (depending on the version of MariaDB and – maybe – the version of Hibernate) one of:

  • org.hibernate.dialect.MariaDBDialect
  • org.hibernate.dialect.MariaDB53Dialect
  • or higher versions (e.g. org.hibernate.dialect.MariaDB106Dialect)

If you are using MySQL, or if the above two dialects for MariaDB don’t exist in your version of Hibernate:

  • org.hibernate.dialect.MySQL5Dialect
  • org.hibernate.dialect.MySQL55Dialect
  • org.hibernate.dialect.MySQL57Dialect
  • org.hibernate.dialect.MySQL8Dialect
  • or variants of these dialects (e.g. org.hibernate.dialect.MySQL57InnoDBDialect)

Leave a Comment