关于No Dialect mapping for JDBC type :-9 hibernate执行原生sql语句问题
今天在使用getSession().createSQLQuery("SELECT SUM(aloneIp) FROM table").list();
时出现了错误:No Dialect mapping for JDBC type: 3;
baidu,google了一番后,各位都说:“出现这个原因是说服务器端的数据类型并不能和Java的BigDecimal数据类型成功映射。”;
而我自己遇到的是报错9 :
但是我没用上面的方法。
我只是规定返回值的类型就可以了。
public List topCataList(int catalevel){
Session session = getSession();
List list = new ArrayList();
String sql = "select TUSHU_DAIMA from Magazine_Cata where CATA_LEVEL = :level";
try {
Query query = session.createSQLQuery(sql).addScalar("TUSHU_DAIMA", Hibernate.STRING);
query.setInteger("level", catalevel);
list = query.list();
} catch (HibernateException e) {
e.printStackTrace();
}
return list;
}
注意红色的部分。
注意:这只是别人的观点,具体的这个问题的原因就是数据库的表中的字段的类型,和实体类中的字段的类型不匹配。
注意修改一下实体类或者是数据库的字段类型就行了,上面只是一种的解决办法,还有许多的解决办法。

浙公网安备 33010602011771号