`
java10000
  • 浏览: 24272 次
  • 性别: 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中把日期转成字符串输出

 

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

分享到:
评论

相关推荐

    hibernate 的createSQLQuery的几种用法

    Hibernate 的 createSQLQuery 的几种用法 Hibernate 的 createSQLQuery 是 Hibernate 框架中的一种强大且灵活的查询机制,它允许开发者使用原生 SQL 语句来查询数据库。下面是 createSQLQuery 的几种常见用法: 一...

    关于hibernate 的createQuery和createSqlQuery 的区别

    在 Hibernate 中,createQuery 和 createSqlQuery 是两个常用的查询方法,但是它们之间存在着一些关键的区别。了解这两个方法的差异对于正确地使用 Hibernate 进行数据库操作至关重要。 createQuery 方法 ...

    hibernate query调用oracle存储过程

    而Hibernate作为一种流行的Java持久化框架,它允许开发者通过ORM(对象关系映射)方式与数据库进行交互。本篇文章将深入探讨如何使用Hibernate的Query接口来调用Oracle的存储过程和函数,以及提供相关的示例代码和...

    hibernate执行原生sql语句

    然而,在一些情况下,我们需要直接执行原生 SQL 语句,而不是使用 Hibernate 的查询语言(HQL)。本文将介绍如何使用 Hibernate 执行原生 SQL 语句。 为什么需要执行原生 SQL 语句 在实际开发中,我们可能需要执行...

    Hibernate-nosession

    然而,需要注意的是,Hibernate-nosession模式虽然在某些场景下提高了效率,但同时也失去了Hibernate的一些优势,如对象缓存、事务管理和懒加载等。因此,我们在选择使用nosession模式时,需要根据具体的应用需求和...

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    hibernate实现动态SQL查询

    SQLQuery query = session.createSQLQuery(sql); // 设置参数绑定 query.setParameter("param1", value1); query.setParameter("param2", value2); List[]> result = query.list(); ``` 八、总结 通过XML配置SQL和...

    hibernate多表联合查询

    有时候,我们可能需要执行一些更复杂的SQL查询,这时可以使用Hibernate的Native SQL查询功能。示例如下: ```java String sql = "SELECT b.name, COUNT(a.fee), MIN(a.chargeBeginTime), MAX(a.chargeEndTime) " + ...

    Hibernate执行持久层访问步骤

    3. SQL查询:对于更复杂的查询需求,可以使用Session的createSQLQuery()方法,直接编写SQL语句。 七、事务提交与关闭 1. 提交事务:所有操作完成后,调用Transaction的commit()方法提交事务,确保数据的持久化。 2....

    HibernateDemo(hibernate基本用法演示)

    - **读取(Read)**:通过 `get()` 或 `load()` 获取单个实体,`createQuery()` 或 `createSQLQuery()` 执行 HQL(Hibernate 查询语言)或 SQL 查询获取多个实体。 - **更新(Update)**:修改实体后调用 `update...

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

    当我们需要执行一些特殊的、复杂的或者非标准的SQL查询时, Hibernate的本地SQL查询功能就显得尤为实用。本文将深入探讨如何使用Hibernate将本地SQL查询的结果封装成对象。 首先,本地SQL查询(Native SQL)是指...

    hibernate的一个简单例程

    4. **查询(Query)**:通过Session的createQuery()或createSQLQuery()方法,执行HQL(Hibernate Query Language)或原生SQL查询。 **知识点七:事务处理** 由于数据库操作通常涉及多条语句,因此需要使用...

    hibernate 数据库操作方法

    Hibernate是Java领域中一款强大的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库操作。在Java应用中,尤其是Spring框架与Hibernate结合使用时,能够实现更高效的业务...

    hibernate 例子及一些数据配置例子

    本资料包"hibernate 例子及一些数据配置例子"提供了一些关于如何使用Hibernate进行数据库操作的实际示例和配置文件,主要针对初学者和那些希望深入理解Hibernate的人。 1. **Hibernate基本概念** - Hibernate是一...

    Hibernate简单的demo

    3. `Query`: `Session`的`createQuery()`方法用于构建HQL(Hibernate Query Language)查询,或者`createSQLQuery()`方法用于构建原生SQL查询。 4. `Criteria API**: 另一种查询方式,提供更面向对象的查询,避免硬...

    hibernate-release-5.0.0.Final(1).zip

    - 使用find()或get()方法获取对象,或使用createQuery()或createSQLQuery()构建查询语句。 - 在事务中执行批量操作,确保数据的原子性和一致性。 - 利用缓存机制提高数据访问速度,如一级缓存(Session级)和二级...

    hibernate动态数据库进化版

    在传统的Hibernate使用中,通常会预定义一些ORM映射文件或注解来固定数据库表的映射关系,但这在应对多变的业务需求和多种数据库环境时显得不够灵活。动态数据库进化版的目的是打破这种局限,使Hibernate能够根据...

    hibernate 执行原生sql的几种方式

    Hibernate的`Session`接口提供了`createSQLQuery()`方法,允许我们直接编写SQL语句。例如: ```java Session session = sessionFactory.openSession(); SQLQuery query = session.createSQLQuery("SELECT * FROM...

Global site tag (gtag.js) - Google Analytics