您的位置:首页 > 其它

hiberante 注册自定义类型

2017-08-10 23:10 239 查看
工作中遇到原生的hibernate方言无法将数据库中的某些数据类型映射到java类中,需要做两个操作:
1、创建类继承自原方言类,并修改所要更改的数据类型,代码如下:

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());
}
}
2、修改配置文件
<!-- 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  注册 hibernate 方言