Pas*_*ent 61
你不能指定Hibernate方言和使用
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
Run Code Online (Sandbox Code Playgroud)
编辑
从MySQL版本> 5.1应该是
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
Run Code Online (Sandbox Code Playgroud)
避免遇到此问题在MySQL中使用"TYPE = InnoDB"抛出异常
Aja*_*mar 25
转到此链接:
它清楚地说:
传统上,MySQL使用非事务性MyISAM存储引擎,这是所有比MySQL55Dialect更早的方言的默认存储引擎.从MySQL55Dialect开始,默认情况下使用InnoDB存储引擎.
将以下内容放在application.properties中(或在您的配置中):
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL55Dialect
Run Code Online (Sandbox Code Playgroud)
上面的通知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
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
ska*_*man 13
您是否在休眠配置中指定了方言设置?如果没有,那么Hibernate将尝试自动检测数据库方言,并将选择最安全的MySQL dialec,即MySQL 4 MyISAM.
你可以通过将它添加到你的hibernate属性来给它一个特定的方言:
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
Run Code Online (Sandbox Code Playgroud)
从Hibernate 5.2.8开始,Mysql*InnoDBDialect不推荐使用其他答案使用的类。新的解决方案是设置以下属性:
hibernate.dialect.storage_engine = innodb
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见http://in.relation.to/2017/02/20/mysql-dialect-refactoring/。
随着spring-boot 2.0.0M7以下为我工作(mysqld 5.7)
spring.jpa.hibernate.use-new-id-generator-mappings: true
spring.jpa.database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
Run Code Online (Sandbox Code Playgroud)
小智 5
对于较新的版本,您可以使用
hibernate.dialect.storage_engine=innodb
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
Run Code Online (Sandbox Code Playgroud)
hibernate.dialect的其他选项可以是MySQL55Dialect或MySQL57Dialect
以防万一 Spring Boot 2
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL57Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35928 次 |
| 最近记录: |