`
jsx112
  • 浏览: 314996 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate的getSQLQuery方法对char类型的解析问题

 
阅读更多

 

由于数据库中我们定义了idchar型,而hibernate自动会把char(n)转换为char(1)型,所以出现了上面的结果。

 

知道了什么原因,我们就可以思考解决方案了。

 

1)         把数据库方言做一下约束

 

hibernate.hbm.xml中修改数据库方言为我们自定义的。

<property name="dialect">com.ying.LongCharDialect</property>

 

 

 

 

重新定义一个新的方言类,使char型的数据映射为String类型

 

public class LongCharDialect extends SybaseDialect {

    public LongCharDialect(){

        super();

        registerHibernateType(Types.CHAR, Hibernate.STRING.getName());

    }

 

}

 

 

 

2)         调用addScalar()方法

 

Query query = session.createSQLQuery(sHQL).addScalar("id", Hibernate.STRING).addScalar("name");

       这样就解决了CHAR字段类型只出一位字符的问题。 但是需要把其他字段也addScalar()进来!

         addScalarString     arg)里的参数是需要大写的!

3)    换用session.createQuery()方法,用HQL语言来查询,因为HQL语言全部把数据库映射成POJO

      XML文件了,在  XML   文件中就有对应的映射规则,在里面我们把char类型的字段映射成String类型就行了。

      这样我们用createQuery()方法就能返回一个个的POJO类型的对象。

4)    调用addEntity()方法,这个的前提也是得定义了映射实体类。

Query query = session.createSQLQuery(sHQL).addEntity(TTest1.class);

     至此,已解决,不过还是建议不要用char类型,有那么好的varchar,为啥不用呢?

 

 

 

分享到:
评论

相关推荐

    Hibernate SQLQuery 查询Oracle char类型结果为一个字符解决方法

    在Hibernate中执行原生SQL查询时,可以通过`addScalar`方法指定返回值的类型,从而改变Hibernate对char类型字段的处理方式。具体操作如下: ```java Session session = this.getSession(); SQLQuery query = ...

    Hibernate的char问题.txt

    ### Hibernate的Char问题详解 #### 一、引言 ...通过正确配置 Hibernate 映射文件、使用合适的 Hibernate 类型以及注意参数绑定时的类型一致性等方法,可以有效避免这些问题,提高应用程序的稳定性和性能。

    JAVA数据类型与Hibernate的类型映射

    在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...

    hibernate映射Oracle中LONG类型

    使用自定义类型映射 Oracle 中的 LONG 类型字段是解决 Hibernate 框架中 LONG 类型字段读写问题的一种有效方法。通过实现 UserType 接口,我们可以定制 LONG 类型字段的读写操作,并提高 Hibernate 框架的灵活性和可...

    Hibernate使用——自定义数据类型

    在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的数据类型,以更好地符合业务需求。本篇文章将深入探讨如何在Hibernate中实现自定义数据类型。 首先,我们需要理解Hibernate是如何处理数据类型...

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

    Java提供了两种主要的数据类型:基本数据类型(如int、char、boolean等)和引用数据类型(如类、接口和数组)。这些数据类型在不同的上下文中有着特定的表示和存储方式。 在数据库领域,Hibernate是一个非常流行的...

    Hibernate 映射类型与Java 类型对照

    理解Hibernate映射类型与Java类型的对应关系对于有效地使用Hibernate至关重要。 首先,我们来看一下基本数据类型的映射。`integer`对应Java中的`int`或`Integer`,在SQL中映射为`INTEGER`类型;`long`对应`long`或`...

    简要分析Java的Hibernate框架中的自定义类型

    在Java的Hibernate框架中,自定义类型是一种非常实用的功能,它允许开发者根据特定业务需求扩展Hibernate内置的数据类型。当我们发现Hibernate默认的数据类型无法满足我们存储数据的特殊要求时,例如需要处理复杂...

    解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题

    以上就是关于"解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题"的详细分析和解决方案。在实际开发中,我们需要结合具体情况进行调整,确保日期时间数据的准确无误。对于提供的文件名"org",可能指的是...

    Hibernate中数据类型

    在Java编程语言中,我们使用各种数据...正确选择和配置这些类型可以避免许多潜在的问题,如数据溢出、格式错误和不兼容性。因此,开发者在设计数据库模型时,必须考虑这些映射关系,以便于创建高效且健壮的应用程序。

    Netbeans 配置 hibernate 的方法

    Netbeans 配置 Hibernate 的方法 Netbeans 是一个功能强大且广泛使用的集成开发环境(IDE),它支持多种编程语言,包括 Java、PHP、Python 等。Hibernate 是一个流行的对象关系映射(ORM)工具,它能够将 Java 对象...

    hibernate使用中与各种数据库字段类型对应类型训练

    9. **枚举类型**:在数据库中可以使用CHAR或INT存储,Hibernate通过`@Enumerated`注解支持枚举类型映射。 在实际应用中,我们还需要关注以下几点: - **级联操作**:如CascadeType.PERSIST、CascadeType.MERGE等,...

    Hibernate数据类型映射及ID

    标题:“Hibernate数据类型映射及ID” 描述:“Hibernate与各数据库数据类型的映射” ### Hibernate数据类型映射 Hibernate作为一款流行的Java持久层框架,它提供了丰富的数据类型映射功能,使得开发者能够更加...

    Hibernate中映射枚举类型

    ### Hibernate中映射枚举类型 #### 概述 Hibernate是一种强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作数据库。在实际应用中,经常会遇到需要将Java中的枚举类型映射到数据库的情况。枚举类型...

    hibernate对Blob类型字段进行数据添加.txt

    ### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...

    hibernate映射枚举类型

    Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...

    hibernate一对多项目

    在JavaEE开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化...通过分析这些代码,你将能更好地掌握Hibernate一对多关系的配置和使用。同时,也可以尝试修改配置或业务逻辑,以加深理解和应用。

    hibernate和java类型转换

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

    Hibernate源码解析(一)

    - 错误排查:当遇到问题时,源码分析能更准确地定位问题所在,提高解决问题的效率。 - 自定义扩展:熟悉源码后,我们可以根据需求自定义拦截器、事件监听器等,实现特定功能。 总结来说,Hibernate源码解析是一个...

    Hibernate源代码分析

    Hibernate源代码分析 在 Hibernate 框架中,SessionFactory 和 ConnectionProvider 是两个非常重要的组件,了解它们的实现机制对于深入了解 Hibernate 的工作原理具有重要意义。本文将通过分析 Hibernate 的源代码...

Global site tag (gtag.js) - Google Analytics