本文主要是介绍No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
转自:https://blog.csdn.net/xd195666916/article/details/5419316
今天做了个用hibernate直接执行原生sql的查询,报错No Dialect mapping for JDBC type :-9
报错原因:hibernate没有配置与数据库同类型的方言
解决方案:
新建一个方言类,本人用的是SQL Server2008数据库,如果用的是其他数据库,请根据数据库继承不同的方言类
ps:MySql(版本为5.x.x),需继承“org.hibernate.dialect.MySQL5Dialect”;
DB2,需继承“org.hibernate.dialect.DB2Dialect”;
SQL Server2008,需继承SQLServerDialect;
package com.jz.fw_easyui.ss.common;import org.hibernate.dialect.SQLServerDialect;public class SqlServer2008Dialect extends SQLServerDialect {public SqlServer2008Dialect() {registerHibernateType(1, "string"); registerHibernateType(-1, "string"); registerHibernateType(-9, "string"); registerHibernateType(-16, "string"); registerHibernateType(3, "double");}
}
建好方言类后,将类路径配置在spring.xml文件中
<property name="hibernateProperties"> <props> <!-- <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> --> <prop key="hibernate.dialect">com.jz.fw_easyui.ss.common.SqlServer2008Dialect</prop> <prop key="hibernate.show_sql"> true </prop> <prop key="hibernate.format_sql"> false </prop> </props>
</property>
至此OK
这篇关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!