MySql中因为数据类型的问题就会出现严重: No Dialect mapping for JDBC type -4 ...等异常.这是由于mysql(BLOB,text)类型在JDBC返回的数据类型没有注册.
解决的方法如下:
1. 重写mysql的方言
public class CrtMySQLDialect extends MySQLDialect {
public CrtMySQLDialect() {
super();
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName()); //对应mysql的text
registerHibernateType(-4, Hibernate.BLOB.getName());
//-4就是错误的type number 在mysql对应XXXBlob忘记了名字^^
}
}
2.在hibernate设置SQL方言的XML文件中将类替换成此上面MySQLDialect 的路径
本文详细介绍了如何解决MySQL中BLOB/text类型在JDBC返回的数据类型未注册导致的异常问题,通过重写方言类和设置SQL方言的XML文件来解决。
785

被折叠的 条评论
为什么被折叠?



