摘要:默认创表引擎为首先创建一个工程编写一个实体类数据库生成了对应的表通过命令查看创表语句默认引擎为修改数据库引擎为过时的方法通过配置文件添加如下配置通过查看源代码发现起继承了类并重写了方法该方法了一个的实例从名字上就能看出端倪源码中建议的方法
默认创表引擎为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
通过配置文件, 添加如下配置
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.
但是我设置了之后却并没有生效, 有成功的朋友可以告诉我一下方法!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/76595.html
摘要:想在部署的时候随应用的启动而初始化数据脚本,这不就是中的自动生成表结构,听起来特别简单,不就是配置的嘛,有什么好说的,是个人都知道。 想在部署的时候随应用的启动而初始化数据脚本,这不就是Spring Data Jpa中的自动生成表结构,听起来特别简单,不就是配置Hibernate的ddl-auto嘛,有什么好说的,是个人都知道。当初我也是这样认为,实际操作了一把,虽然表是创建成功了,但...
摘要:我将举几个栗子,来详细的说一下我自己在使用多表复杂查询的场景和想法。名字手机号这是一个单表的多条件复杂查询,由于是在几个属性中进行筛选,其中的属性的个数不知道有多少个,所以只需要利用查询就可以很方便的实现这个需求。 最近工作中由于要求只能用hibernate+jpa 与数据库进行交互,在简单查询中,jpa继承CrudRepository接口 ,然后利用jpa的方法命名规范进行jpql查...
摘要:的配置后在其他低版本的中也有使用这种配置的,具体根据版本而定。等注解是的相关知识,后面的文章将详细讲述。 在我们的实际开发的过程中,无论多复杂的业务逻辑到达持久层都回归到了增删改查的基本操作,可能会存在关联多张表的复杂sql,但是对于单表的增删改查也是不可避免的,大多数开发人员对于这个简单而繁琐的操作都比较烦恼。 为了解决这种大量枯燥的简单数据库操作,大致的解决该问题的有三种方...
阅读 2874·2021-10-19 10:09
阅读 3084·2021-10-09 09:41
阅读 3322·2021-09-26 09:47
阅读 2580·2019-08-30 15:56
阅读 563·2019-08-29 17:04
阅读 949·2019-08-26 11:58
阅读 2469·2019-08-26 11:51
阅读 3283·2019-08-26 11:29