默认创表引擎为MyISAM
首先创建一个springboot 工程, 编写一个实体类
@Data
@Entity
public class Employee {
@Id
private Integer id;
private String name;
private Long salary;
public Employee() {
}
public Employee(Integer id) {
this.id = id;
}
}
数据库生成了对应的employee表, 通过show create命令查看创表语句
默认引擎为MyISAM
修改数据库引擎为InnoDB
过时的方法
通过配置文件, 添加如下配置
spring:
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
通过查看MySQL5InnoDBDialect源代码发现起继承了MySQL5Dialect类并重写了getDefaultMySQLStorageEngine()方法
@Override
protected MySQLStorageEngine getDefaultMySQLStorageEngine() {
return InnoDBStorageEngine.INSTANCE;
}
该方法了一个InnoDBStorageEngine的实例, 从名字上就能看出端倪.
源码中建议的方法
但是
MySQL5InnoDBDialect这个类已经过时了, 从该类的源代码注释中可以看到这么一句注释
Use "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.
但是我设置了之后却并没有生效, 有成功的朋友可以告诉我一下方法!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。