`
zoutuo1986
  • 浏览: 178968 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

"hibernate的sqlquery" 与"sqlserver 表char类型"的矛盾

阅读更多

一、问题描述

1.1、

使用hibernate的findBySQLQuery查询“select role_id,chg_id from tbl_tra_role_info”。

在List<Object[]>对象中,每一个单元的数据都是java的character类型,数据长度=1,而字段(role_id)与字段(chg_id )都是char(10)类型。

1.2、

将sql改为“select role_id+'',chg_id+'' from tbl_tra_role_info”后,每一个单元的数据不在是character类型,数据的长度也不再是1了,但是 每一个Object[]中的两个数据都是一致的,且都是第一列“role_id”的值。

二、问题处理

2.1、

sql不变,还是“select role_id,chg_id from tbl_tra_role_info”,将表字段的类型,由原来的char(10),改为varchar(50),问题解决。

2.2、

sql改变,"select role_id+'' a,chg_id+'' b from tbl_tra_role_info",表结构不变,问题解决。

三、问题分析

3.1、

在hibernate代码中,或sqljdbc.jar包代码中,存在处理数据库char类型的的缺陷。hibernate嫌疑较大,将数据库中char类型的数据,直接转换为java的char类型数据,导致数据长度丢失。

3.2、用“select role_id+'',chg_id+'' from tbl_tra_role_info”这句sql去查询,发现问题:

由于两列都没有列名,导致hibernate在整理结果集的过程中,将第一列数据赋值给第二列,出现新问题。

 -------------

3.3、还有可能hibernate配置出了问题,数据库方言配置似乎没啥问题,

写道
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.query.factory_class">
<!--org.hibernate.hql.classic.ClassicQueryTranslatorFactory -->
org.hibernate.hql.ast.ASTQueryTranslatorFactory
</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
</props>
</property>

 

 

  • 大小: 18.8 KB
分享到:
评论

相关推荐

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

    ### Hibernate SQLQuery 查询Oracle char类型结果为一个字符的解决方法 在使用Hibernate框架结合Oracle数据库进行数据查询时,经常会遇到一个问题:当查询的结果集中包含char类型的字段时,Hibernate可能会将其映射...

    Hibernate SQLQuery 本地查询

    在Java的持久化框架Hibernate中,SQLQuery是用于执行自定义SQL语句的重要工具,它允许开发者绕过ORM(对象关系映射)的抽象层,直接与数据库进行交互。这篇博客"Hibernate SQLQuery 本地查询"可能详细讲解了如何利用...

    Hibernate SQLQuery执行原生SQL.docx

    在Java的Hibernate框架中,有时候我们需要执行自定义的SQL查询以获取特定的数据,这时就可以使用SQLQuery接口。本文将深入探讨Hibernate如何通过SQLQuery接口执行原生SQL查询,并展示如何处理查询结果。 一、创建...

    hibernate 连接sqlserver2000

    标题 "Hibernate 连接 SQLServer2000" 暗示了我们将探讨如何使用流行的Java ORM框架Hibernate与较老版本的SQL Server数据库——SQL Server 2000进行交互。在Java应用程序开发中,Hibernate提供了对象关系映射功能,...

    hibernate sql query.pdf

    hibernate sql hqlsql

    Hibernate+sqlserver2000分页

    本篇文章将深入探讨使用Hibernate ORM框架与SQL Server 2000数据库进行分页查询的方法。 首先,Hibernate是Java领域中最流行的ORM(对象关系映射)框架之一,它允许开发者使用面向对象的方式操作数据库,减少了直接...

    使用Hibernate访问sqlserver数据库

    **使用Hibernate访问SQL Server数据库** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库和...通过分析和运行这些代码,你可以更深入地了解和实践Hibernate与SQL Server的整合。

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

    在这个场景中,我们将探讨如何使用Hibernate与SQL Server 2005数据库进行基本的CRUD(Create、Read、Update、Delete)操作。 首先,我们需要确保引入了Hibernate的依赖库。从描述中的“Hibernate 所需要的 jar 包”...

    sqlserver的hibernate

    **SQLServer与Hibernate的整合应用** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的SQL语句。本教程将介绍如何使用Hibernate操作...

    hibernate SQLServer2008Dialect

    SQLServer2008Dialect 优化了原来的分页查询数据方法以及在生成SQL时表后增加了with(nolock)

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

    这里,我们提到了一个名为“Hibernate的映射类型_hibernate_mysql映射类型.doc”的文档,这很可能是一个详细的对照表,列出了Hibernate如何将Java数据类型映射到MySQL数据库的SQL数据类型。MySQL是世界上最流行的...

    Struts 1.1、Hibernate 3.0和SQL Server 2005数据库驱动包

    Struts 1.1、Hibernate 3.0 和 SQL Server 2005 数据库驱动包是构建基于Java的企业级Web应用程序的关键组件。这些技术在2000年代中期广泛应用于开发面向服务架构(SOA)和模型视图控制器(MVC)模式的系统。 Struts...

    Spring集成Hibernate写SQLServer

    本文将深入探讨如何将Spring与Hibernate整合,以便在SQL Server数据库上执行SQL操作。 首先,Spring框架是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,使得应用...

    hibernate3连接sql server的例子

    **hibernate3连接sql server的例子** 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化...通过这个例子,开发者可以深入理解Hibernate 3如何与SQL Server配合工作,并将其应用到实际项目中。

    Hibernate+本地SQL查询SQLQuery宣贯.pdf

    这里的`{cat.*}`是Hibernate的别名语法,用于指定SQL查询中的表别名,并将其与Java实体类关联。 如果查询涉及到关联加载,比如加载子实体或集合,可以使用`addJoin()`方法: ```java List&lt;Cat&gt; cats = sess....

    Hibernate连接Sql Server所需的jar包

    1. **msbase.jar**:这是Microsoft JDBC Driver的基础库,包含了与SQL Server交互所需的基本类和接口。它提供了对SQL Server的JDBC支持,使Java应用程序能够通过JDBC API连接到SQL Server数据库,执行SQL查询,以及...

    SpringBoot+hibernate+mysql+sqlserver双数据源

    本项目"SpringBoot+Hibernate+MySQL+SQLServer双数据源"正为此目的设计,它利用SpringBoot的灵活性和便利性,结合Hibernate的ORM能力,实现了对MySQL和SQLServer两种主流数据库的支持,为数据迁移、读写分离、高可用...

    Hibernate 分页示例 SQLServer 数据库

    一个基于Hibernate 和 SQLServer 数据库的分页示例,所有文件和数据库备份都在,只是速度不怎么快,如果加上自动生成下拉框,速度就更慢了,单表、10008条测试数据,如果哪位大侠改进了查询速度望告之:vni2007@163....

    struts/hibernate/spring/sqlserver2005的包

    Struts、Hibernate、Spring 和 SQL Server 2005 是Java Web开发中四个非常关键的组件,它们在构建企业级应用程序时发挥着重要作用。 Struts 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,主要...

Global site tag (gtag.js) - Google Analytics