由于数据库中我们定义了id为char型,而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()进来!
addScalar (String 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中执行原生SQL查询时,可以通过`addScalar`方法指定返回值的类型,从而改变Hibernate对char类型字段的处理方式。具体操作如下: ```java Session session = this.getSession(); SQLQuery query = ...
### Hibernate的Char问题详解 #### 一、引言 ...通过正确配置 Hibernate 映射文件、使用合适的 Hibernate 类型以及注意参数绑定时的类型一致性等方法,可以有效避免这些问题,提高应用程序的稳定性和性能。
在Java编程语言中,数据类型分为两种:基本数据类型(如int、char)和引用数据类型(如类、接口、数组)。而在Java持久化框架Hibernate中,这些数据类型需要与数据库中的字段类型进行映射,以便正确地存储和检索数据...
使用自定义类型映射 Oracle 中的 LONG 类型字段是解决 Hibernate 框架中 LONG 类型字段读写问题的一种有效方法。通过实现 UserType 接口,我们可以定制 LONG 类型字段的读写操作,并提高 Hibernate 框架的灵活性和可...
在实际项目开发中,有时我们可能需要对数据库中的某些字段使用自定义的数据类型,以更好地符合业务需求。本篇文章将深入探讨如何在Hibernate中实现自定义数据类型。 首先,我们需要理解Hibernate是如何处理数据类型...
Java提供了两种主要的数据类型:基本数据类型(如int、char、boolean等)和引用数据类型(如类、接口和数组)。这些数据类型在不同的上下文中有着特定的表示和存储方式。 在数据库领域,Hibernate是一个非常流行的...
理解Hibernate映射类型与Java类型的对应关系对于有效地使用Hibernate至关重要。 首先,我们来看一下基本数据类型的映射。`integer`对应Java中的`int`或`Integer`,在SQL中映射为`INTEGER`类型;`long`对应`long`或`...
在Java的Hibernate框架中,自定义类型是一种非常实用的功能,它允许开发者根据特定业务需求扩展Hibernate内置的数据类型。当我们发现Hibernate默认的数据类型无法满足我们存储数据的特殊要求时,例如需要处理复杂...
以上就是关于"解决Hibernate对于Date类型的数据返回结果中时分秒不对的问题"的详细分析和解决方案。在实际开发中,我们需要结合具体情况进行调整,确保日期时间数据的准确无误。对于提供的文件名"org",可能指的是...
在Java编程语言中,我们使用各种数据...正确选择和配置这些类型可以避免许多潜在的问题,如数据溢出、格式错误和不兼容性。因此,开发者在设计数据库模型时,必须考虑这些映射关系,以便于创建高效且健壮的应用程序。
Netbeans 配置 Hibernate 的方法 Netbeans 是一个功能强大且广泛使用的集成开发环境(IDE),它支持多种编程语言,包括 Java、PHP、Python 等。Hibernate 是一个流行的对象关系映射(ORM)工具,它能够将 Java 对象...
9. **枚举类型**:在数据库中可以使用CHAR或INT存储,Hibernate通过`@Enumerated`注解支持枚举类型映射。 在实际应用中,我们还需要关注以下几点: - **级联操作**:如CascadeType.PERSIST、CascadeType.MERGE等,...
标题:“Hibernate数据类型映射及ID” 描述:“Hibernate与各数据库数据类型的映射” ### Hibernate数据类型映射 Hibernate作为一款流行的Java持久层框架,它提供了丰富的数据类型映射功能,使得开发者能够更加...
### Hibernate中映射枚举类型 #### 概述 Hibernate是一种强大的对象关系映射(ORM)框架,它允许开发者以面向对象的方式操作数据库。在实际应用中,经常会遇到需要将Java中的枚举类型映射到数据库的情况。枚举类型...
### Hibernate 对 Blob 类型字段进行数据添加 #### 知识点概述 在处理数据库操作时,经常需要存储二进制大对象(Binary Large Object,简称 BLOB),例如图像、视频等非文本数据。BLOB 类型是数据库系统中用于存储...
Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...
在JavaEE开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化...通过分析这些代码,你将能更好地掌握Hibernate一对多关系的配置和使用。同时,也可以尝试修改配置或业务逻辑,以加深理解和应用。
hibernate和java类型转换,hibernate和java类型转换
- 错误排查:当遇到问题时,源码分析能更准确地定位问题所在,提高解决问题的效率。 - 自定义扩展:熟悉源码后,我们可以根据需求自定义拦截器、事件监听器等,实现特定功能。 总结来说,Hibernate源码解析是一个...
Hibernate源代码分析 在 Hibernate 框架中,SessionFactory 和 ConnectionProvider 是两个非常重要的组件,了解它们的实现机制对于深入了解 Hibernate 的工作原理具有重要意义。本文将通过分析 Hibernate 的源代码...