Hibernate createSQLQuery的一些疑问

最近我在使用createSQLQuery()方法时候发现有两个问题,在此提出来希望大家遇到的时候节省大家时间

 

第一个:No Dialect mapping for JDBC type :-X hibernate的错误,X代表的是数字

我目前遇到的是org.hibernate.MappingException: No Dialect mapping for JDBC type: -1

没有能够和text类型对应的java类型

网上的各位都说,出现这个原因是说服务器端的数据类型并不能和Java的相应的数据类型成功映射

解决办法参考:注册新的类型映射

具体请参考下面这位仁兄解答

http://blog.csdn.net/xd195666916/archive/2010/03/26/5419316.aspx

 

关于mysql数据类型与java数据类型对照:

http://hi.baidu.com/lilingqhd/blog/item/dfab391293b03c0b5baf5348.html

    

第二个:hibernate中用createSQLQuery方法查询,返回的list用object[]接收,

遍历取值发现object[i]输出值是只有一位。这个问题具体原因尚不清楚,但是和数据库方言有关

我在mysql数据库中目前遇到的是,数据库中sum求和输出的数值例如189只能输出1后面两位不见了

加班的时候好不容易才发现这个问题,浪费很多时间,我一直以为sql错误

解决方法参考:指定输出数据的类型addScalar("数据库字段名",Hibernate.输出类型).

具体请参考下面这位仁兄解答

http://blog.csdn.net/dream8062/archive/2009/10/30/4748422.aspx

 

网上基本都是说使用DB2数据库的时候出现char型输出只有一位,呵呵,中国有钱的单位真是多,DB2运用这么广泛吗?

其实这个我以前在使用oracle数据库也遇到过类似情况,就是数据库里面的timestamp类型使用createSQLQuery()方法查询出来的时候发现只有日期(年月日),当时的解决方法是直接在sql中把日期转成字符串输出

 

具体产生这种情况原因,还需要达人帮助解答一下?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值