`
java10000
  • 浏览: 23604 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

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中把日期转成字符串输出

 

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics