最近有一个项目使用Mysql5数据库,遇到Text类型字段,在使用Hibernate查询此字段时发生了找到不Text类型映射的异常,经过多次调试和研究,找到了一下解决方法:
1.扩展Hibernate的org.hibernate.dialect.MySQLDialect类(Hibernate中Mysql的方言)
public class ExtMysqlDialect extends MySQLDialect {
public ExtMysqlDialect() {
super();
registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
registerHibernateType(Types.LONGVARCHAR,Hibernate.TEXT.getName());
}
}
添加类型的映射。
2.修改原有的Hibernate对应Mysql的方言
hibernate.dialect参数值设置为你的扩展类ExtMysqlDialect
在使用Hibernate提取报表时,经常遇到自定义的列,有时也会遇到类似的问题,也可以通过这样的方法解决。