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

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

Java 更新时间:发布时间: 百科书网 趣学号

在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.051e.com
本文地址:http://www.051e.com/it/276460.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号