createSQLQuery使用uniqueResult的一个错误
2014-10-26 18:14
183 查看
我们都知道在Hibernate中使用createQuery和createSQLQuery的最大区别就是前者是使用hql语句,后者使用的是sql语句
之前在使用createSQLQuery进行select count(*) 查询时出现一个异常,可能是使用createQuery习惯了,一直没找到错误的原因
原本的代码是这样写的:
记得使用createQuery这样写是没问题的,但现在这里一直报BigDecimal格式转换的异常,后面没办法只能debug以下,发现返回值就是BigDecimal类型,无奈只能这么写就没问题了
之前在使用createSQLQuery进行select count(*) 查询时出现一个异常,可能是使用createQuery习惯了,一直没找到错误的原因
原本的代码是这样写的:
long count = (Long) getSessionFactory().getCurrentSession().createSQLQuery(sb.toString()).uniqueResult();
记得使用createQuery这样写是没问题的,但现在这里一直报BigDecimal格式转换的异常,后面没办法只能debug以下,发现返回值就是BigDecimal类型,无奈只能这么写就没问题了
Query query = getSessionFactory().getCurrentSession() .createSQLQuery(sb.toString()); Object object = query.uniqueResult(); if (object instanceof BigDecimal) { BigDecimal bd = (BigDecimal) query.uniqueResult(); count = bd.intValue(); }
相关文章推荐
- 使用NHibernate CreateSQLQuery,需指定类型
- 使用hibernate的this.getSession().createSQLQuery(sql).list();方法查询数据时出现查到的数据和想象的不一致,很是郁闷,诡异
- atitit. orm框架的hibernate 使用SQLQuery createSQLQuery addEntity
- Hibernate使用二级缓存时,createSQLQuery需要注意的问题
- createSQLQuery的addEntity跟setResultTransformer方法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- 【Hibernate】关于hibernate中使用createSQLQuery后返回的结果处理
- herbnate session.createSQLQuery(sql) 和 session.createQuery(sql)使用
- createSQLQuery的addEntity跟setResultTransformer方法
- 网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。
- 使用hibernate3的createSQLQuery遇到的问题
- hibernate查询某一个对象后,执行createSQLQuery查询出现的问题
- Hibernate学习之createSQLQuery与createQuery的区别及使用
- hibernate里createSQLQuery的addEntity()和setResultTransformer()方法
- 使用hibernate3的createSQLQuery遇到的问题
- Hibernate 使用createSQLQuery查询时,缓存问题
- 使用 getSession().createSQLQuery(hql)后出现的奇怪BUG
- 错误createSQLQuery is not valid without active transaction
- 使用createSQLQuery直接封装成自定义对象
- hibernate4中使用createSQLQuery方法执行sql语句的用法