对于Hibernbate SQLServer 2008 No Dialect mapping for JDBC type:-9解决方法

原创 2016年08月30日 10:54:57

今天同事遇到一个hibernate.mapping.exception,然后帮忙解决啦!下面整理下解决方法

异常重现



第一种通过整理hibernate.cfg.xml  Dialect

package com.util;


import java.sql.Types;


import org.hibernate.Hibernate;
import org.hibernate.dialect.SQLServerDialect;

public class MyDialect extends SQLServerDialect {
public MyDialect() {
super();

               //对应hbibernate里面的数据类型,否则映射不正确!
registerHibernateType(Types.NVARCHAR, Hibernate.STRING.getName());
registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName());
//registerHibernateType(Types.DECIMAL, Hibernate.BIG_DECIMAL.getName());
}
}
// registerHibernateType(Types.LONGVARCHAR, 65535, "text");//.LONGVARCHAR
参考http://blog.csdn.net/qq804702802/article/details/47754875

然后在hibernate.cfg.xml配置不要使用原生的hibernate查询 SQL



第二种创建具体代码如下UserInfoImpl.java

@Override
public List getListBySql() {
// TODO Auto-generated method stub
List list = new ArrayList();
Transaction tr = null;
Session session = null;
try {
session = getSession();
tr = session.beginTransaction();
String hql = "select * from UserInfo";

                        //创建sql查询

SQLQuery query = session.createSQLQuery(hql); 

                       //指定UserInfo.hbm.xmlColumn 以及指定Hibernate数据类型一直

query.addScalar("U_Name", Hibernate.STRING);
query.addScalar("U_Pwd", Hibernate.STRING);
list = query.list();
tr.commit();
System.out.println(hql);
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tr.rollback();
}


return list;
}


@Override
public List<UserInfo> getListBySqlQ() {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
List<UserInfo> list = new ArrayList<UserInfo>();
Transaction tr = null;
Session session = null;
try {
session = getSession();
tr = session.beginTransaction();
String hql = "select * from UserInfo";//添加一个实体
list = session.createSQLQuery(hql).addEntity(UserInfo.class).list();
// list=query.list();
tr.commit();
System.out.println(hql);
} catch (HibernateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
tr.rollback();
}


return list;
}
}

最后测试

package com.util;


import java.util.List;


import com.bean.LogInfo;
import com.bean.UserInfo;
import com.dao.UserDao;
import com.dao.impl.UserInfoImpl;


public class TestUser {
public static void main(String[] args) {
UserDao dao = new UserInfoImpl();
//返回object数组
List<Object[]> list = dao.getListBySql();
//逻辑与 先判断不为空 否则报NullPonitException
if (list != null && list.size() > 0) {

for (Object[] objects : list) {

                                    //打印所有UserInfo的U_Name
System.out.println(objects[0]);
}

}

}

效果图


版权声明:本文为博主原创文章,未经博主允许不得转载。

hibernate查询异常:No Dialect mapping for JDBC type:-9(sql server)

今天用到hibernate查询数据库数据(sql server),出现异常:No Dialect mapping for JDBC type:-9 但是把对应的sql语句拷贝到数据库UI工具运行发现...
  • Colin_smile
  • Colin_smile
  • 2016年04月11日 21:52
  • 1004

解决No Dialect mapping for JDBC type: -9

解决NoDialect mapping for JDBC type: -9 1、 描述 本项目使用JEECG开源框架开发,其中hibernate4.2.0,Oracle10g数据库,tomcat7...
  • qq_29462089
  • qq_29462089
  • 2017年04月07日 14:02
  • 662

no dialect mapping for jdbc type:-9

出现这个问题可能的原因: 1、数据库字段类型和JAVA类型不匹配。 2、Hibernate中错误地配置了数据库方言。 原因1解决方法: 查看java.sql.Types找到对应的类型。 ...
  • LinBilin_
  • LinBilin_
  • 2015年10月27日 10:54
  • 3612

Hibernate SQL查询:No Dialect mapping for JDBC type: -9

错误代码: List list = session.createSQLQuery("SELECT name FROM test1").list();或者: List list = sessio...
  • qq804702802
  • qq804702802
  • 2015年08月18日 17:26
  • 1964

关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题

今天做了个用hibernate直接执行原生sql的查询,报错No Dialect mapping for JDBC type :-9 在网上查了一下。有很多解决方法,这里总结一下。方便大家查找。 第一...
  • xd195666916
  • xd195666916
  • 2010年03月26日 13:33
  • 47224

No Dialect mapping for JDBC type 错误分析,Hibernate和数据库类型对应

当在hibernate中运用原始的sql语句进行操作的的时候,常常会报错,错误很多都是关于  No Dialect mapping for JDBC type类型的错误,经过分析和查找,问题常常发生...
  • mingming_vip
  • mingming_vip
  • 2013年04月26日 13:07
  • 1849

ORACLE11g:No Dialect mapping for JDBC type: -9,2011解决方案

一、描述     本项目使用JEECG开源框架开发,其中hibernate4.2.0,Oracle10g数据库,tomcat7.40,jdk7,ojdbc6.jar札包连接数据库,在tomcat7启动...
  • tongyuehong
  • tongyuehong
  • 2015年11月26日 15:15
  • 3374

关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题 .

今天做了个用hibernate直接执行原生sql的查询,报错No Dialect mapping for JDBC type :-9   在网上查了一下。有很多解决方法,这里总结一下。方便大家查找...
  • machinecat0898
  • machinecat0898
  • 2014年10月08日 16:33
  • 1548

org.hibernate.MappingException: No Dialect mapping for JDBC type: -9【问题发现与解决】

一、发现问题: 在我的项目中,运用SpringMVC框架。因为直接查询视图,数据较多,响应时间很慢。于是,运用左连接查询数据库取需要的字段属性,存到一个实体类中。 于是用Hibernate的Que...
  • DUANyaxin
  • DUANyaxin
  • 2016年08月12日 14:05
  • 1703

org.hibernate.MappingException: No Dialect mapping for JDBC type: -15的解决方法

org.hibernate.MappingException: No Dialect mapping for JDBC type: -15的解决方法
  • chenyuangege
  • chenyuangege
  • 2015年12月04日 22:57
  • 1810
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对于Hibernbate SQLServer 2008 No Dialect mapping for JDBC type:-9解决方法
举报原因:
原因补充:

(最多只允许输入30个字)