hiberante 註冊自定義類型

工做中遇到原生的hibernate方言沒法將數據庫中的某些數據類型映射到java類中,須要作兩個操做:java

一、建立類繼承自原方言類,並修改所要更改的數據類型,代碼以下:
sql

package com.lkscn.base.dialect;

import java.sql.Types;

import org.hibernate.Hibernate;
import org.hibernate.dialect.MySQL5Dialect;

public class MyDialectForInkfish extends MySQL5Dialect {

	public MyDialectForInkfish(){
		super();
		//數據庫中的longchar類型映射爲text類型
		registerHibernateType(Types.LONGVARCHAR, 65535, "text");		
		registerHibernateType(Types.LONGVARCHAR, 65535, "longtext");
		registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
		registerHibernateType(-1, Hibernate.STRING.getName());
	}
}

二、修改配置文件數據庫

<!-- MySql 數據源配置 -->
<property name="hibernateProperties">
	<value>
		hibernate.cache.use_query_cache=true
		hibernate.cache.use_second_level_cache=true
		hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
<!-- 		hibernate.dialect=org.hibernate.dialect.MySQLDialect -->
		hibernate.dialect=com.lkscn.base.dialect.MyDialectForInkfish
		hibernate.hbm2ddl.auto=update
		<!--hibernate.show_sql=show -->
		hibernate.format_sql=true
		hibernate.jdbc.fetch_size=5
		hibernate.jdbc.batch_size=30
	</value>
</property>
相關文章
相關標籤/搜索