栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring.jpa hibernate自动建表引擎设置

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring.jpa hibernate自动建表引擎设置

在Spring jpa 中hibernate 会自动根据实体类建表,但建立的表引擎默认的是MyISAM。那怎么更改默认的表引擎为InnoDB呢?首先看一下你的MySQL方言是怎么设置的。如果你的方言设置的是MySQL55Dialect,那么无需更改, 默认的就是InnoDB。如果你的方言是MySQL5Dialect, 那我们看下代码。

	public MySQLDialect() {
		super();

		String storageEngine = Environment.getProperties().getProperty( 		Environment.STORAGE_ENGINE );
		if ( storageEngine == null ) {
			this.storageEngine = getDefaultMySQLStorageEngine();
		}
		else if( "innodb".equals( storageEngine.toLowerCase() ) ) {
			this.storageEngine = InnoDBStorageEngine.INSTANCE;
		}
		else if( "myisam".equals( storageEngine.toLowerCase() ) ) {
			this.storageEngine = MyISAMStorageEngine.INSTANCE;
		}
		else {
			throw new UnsupportedOperationException( "The storage engine '" + storageEngine + "' is not supported!" );
		}
		...........

从这段代码可以看出, 在创建存储引擎的实例时首先获取环境变量Environment.STORAGE_ENGINE(“hibernate.dialect.storage_engine”), 如果定义了引擎类型,就按照定义的类型生成相应类型的实例。 注意MySQL5Dialect是MySQLDialect的子类。 明白了这段代码, 我们在系统启动时通过-Dhibernate.dialect.storage_engine=innodb定义一下Environment.STORAGE_ENGINE的值就好了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号