`
nesuk
  • 浏览: 169283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用Hibernate执行SQL遇到的数值类型转换异常小解

阅读更多
异常信息:数值转换异常,java.math.BigDecimal cannot convert to java.lang.Long
场景:用Hibernate执行SQL语句,尤其是执行count时
解决方法:
执行sql语句,返回成BigDecimal的这种  可以试试这样做:
修改SQL语句:select count(t.id) as count
在list()前调用q.addScalar("count", Hibernate.LONG)

感悟:以前遇到过这种问题,当时是一个项目从Sybase库迁移到Oracle库,遇到问题之后,没有仔细思考,直接将类似的所有调用返回值的地方都改成了BigDecimal型,改动量相当大,因为除了count还有其它一些情况下也需要转换。

直到今天测试报的bug中又遇到了这个问题,随意在群了说了一下,王大拿马上就给出了另一种解决方法,确实令我相当的惊讶。实力还是从一个个小的细节积累起来的啊,佩服
分享到:
评论
1 楼 zhangjun66600 2013-03-19  

相关推荐

    hibernate执行原生sql语句

    Hibernate 提供了多种方式来执行原生 SQL 语句,其中之一是使用 `Session.createSQLQuery()` 方法,该方法返回一个 `SQLQuery` 对象,该对象提供了执行原生 SQL 语句的方法。 例如,我们可以使用以下代码来执行一个...

    hibernate 执行原生sql的几种方式

    在Java的持久化框架Hibernate中,执行原生SQL(Native SQL)是常见需求,尤其是在处理特定数据库特性或者优化性能时。本篇文章将详细介绍在Hibernate中执行原生SQL的几种方式,以及它们各自的适用场景和优缺点。 1....

    hibernate实现动态SQL查询

    // 使用Hibernate执行SQL Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery(sql); // 设置参数绑定 query.setParameter("param1", value1); query.setParameter("param2",...

    Java数据类型,Hibernate数据类型,标准sql数据类型之间的对应表

    当我们在使用Hibernate时,我们需要了解Java数据类型如何与SQL数据类型对应,以便正确地配置实体类和Hibernate的映射文件(通常是.hbm.xml文件或使用注解的方式)。例如,Java的`int`类型通常对应于SQL的`INTEGER`,...

    hibernate执行外部sql

    标题“hibernate执行外部sql”指的是使用Hibernate框架执行存储在外部文件中的SQL语句。通常,Hibernate以其对象关系映射(ORM)能力著称,允许开发者通过Java对象来操作数据库,但有时我们仍需直接执行SQL,特别是...

    使用hibernate对sqlserver 2005进行增删改查

    id字段使用了"native"生成策略,这意味着Hibernate会根据数据库类型自动生成主键。其他属性(name和birthday)是普通的属性,有对应的getter和setter方法。 接着是User的映射文件(User.hbm.xml),它定义了实体类...

    Hibernate中Sql语句

    ### Hibernate中使用SQL而非HQL语句的知识点详解 在Java开发中,Hibernate作为一个非常流行的ORM框架,提供了多种查询方式,其中就包括了HQL(Hibernate Query Language)和原生SQL查询。本文将针对给定代码片段中...

    hibernate显示不带?的完整sql

    通常,Hibernate默认输出的SQL语句会用问号(?)作为占位符,这在理解查询逻辑时可能会带来不便。本文将详细介绍如何配置Hibernate以显示不带问号的完整SQL。 首先,我们要启用Hibernate的SQL日志。这通常通过配置`...

    hibernate将本地SQL查询结果封装成对象

    首先,本地SQL查询(Native SQL)是指直接在Hibernate中使用原生的SQL语句进行查询,而不是使用HQL(Hibernate Query Language)。这允许开发者充分利用SQL的功能,比如进行复杂的统计计算或者处理特定数据库的特性...

    hibernate 连接sqlserver2000

    标题 "Hibernate 连接 SQL Server 2000" 涉及到的是在Java开发中使用Hibernate ORM框架与较旧版本的SQL Server数据库(即SQL Server 2000)进行交互的知识点。以下是对这个主题的详细阐述: Hibernate是Java领域中...

    hibernate将本地SQL查询结果封装成对象(最终)

    使用本地sql语句查询后,无需再使用Object对查询结果进行强制转换,而是直接将查询结果放到实体Bean里了。 PS: 其实只有一版,这里只所以叫最终版是因为该附件我上传了好几天传不上去,到最后报告说‘资源已经存在...

    使用Hibernate访问sqlserver数据库

    **使用Hibernate访问SQL Server数据库** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库和面向对象编程之间架起桥梁的方式。通过使用Hibernate,我们可以避免编写大量的SQL...

    让hibernate输出sql语句参数配置.doc

    hibernate.dialect 是一个 Hibernate Dialect 类名,允许 Hibernate 针对特定的关系数据库生成优化的 SQL。其取值为 full.classname.of.Dialect。 2. hibernate.show_sql hibernate.show_sql 参数用于输出所有 SQL...

    Hibernate+sqlserver2000分页

    这通常涉及到在HQL中嵌入SQL片段,或者使用`createSQLQuery`方法直接执行SQL查询。同时,别忘了映射查询结果到对应的Java对象。 4. **max分页**: 提到的`max分页`可能是指在某些场景下,我们需要知道总共有多少页...

    Hibernate生产SQL语句

    总结来说,模仿Hibernate生成SQL语句需要对Hibernate的ORM机制有深入理解,包括实体类的定义、属性映射、查询API的使用,以及Java反射的应用。通过这种方式,开发者可以自定义查询逻辑,同时利用Hibernate的强大功能...

    spring+hibernate,自己封装了原生sql的处理,模仿mybatis使用

    而Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,允许开发者通过Java对象来操作数据库,减少了对SQL的直接使用。 标题中的"spring+hibernate"表明这是一个将两者结合使用的项目。Spring和...

    Spring集成Hibernate写SQLServer

    而Hibernate是一个强大的对象关系映射(ORM)工具,它允许开发者用Java对象来操作数据库,降低了直接使用SQL的复杂性。 在Spring集成Hibernate的过程中,我们需要配置Spring的DataSource、SessionFactory以及...

    hibernate数据库通用SQL代码

    在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了与数据库的交互,使得开发者可以更专注于业务逻辑而不是底层的SQL操作。本文将详细讲解如何使用Hibernate来编写通用的数据库操作代码,包括插入...

    hibernate和java类型转换

    hibernate和java类型转换,hibernate和java类型转换

Global site tag (gtag.js) - Google Analytics