Hibernate:创建Mysql InnoDB表而不是MyISAM
如何让Hibernate(使用JPA)来创建MySQL InnoDB表(而不是MyISAM)?我已经找到了在使用Hibernate生成SQL文件以创建表时有效的解决方案,但没有一个“动态”工作。
如何让Hibernate(使用JPA)来创建MySQL InnoDB表(而不是MyISAM)?我已经找到了在使用Hibernate生成SQL文件以创建表时有效的解决方案,但没有一个“动态”工作。
您不能指定休眠方言并使用
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
编辑
从MySQL版本>5.1开始,这应该是
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
以避免遇到此问题 在MySQL中使用“TYPE = InnoDB”会引发异常
转到此链接:
它清楚地说:
传统上,MySQL使用非事务性MyISAM存储引擎,这是所有早于MySQL55Dialect的方言的默认存储引擎。从MySQL55Dialect开始,默认情况下使用InnoDB存储引擎。
将以下内容放在 application.properties(或配置中)中:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL55Dialect
上文第55号通知。- 不仅仅是5。
您也可以在控制台中看到它:
Hibernate: create table users_events (user_id bigint not null, event_id bigint not null) engine=InnoDB
Hibernate: create table users_roles (user_id bigint not null, role_id bigint not null) engine=InnoDB
希望它有帮助。