`

Hibernate3 返回查询结果为Map时 ,有的字段只返回第一位字符?

 
阅读更多

       Hibernate3 返回查询结果为Map时 ,有的字段只返回第一位字符?返回结果,HashMap KEY DM ,VALUE 总把结果截断,返回第一个字符。

 

  1. public static List geDmList(){
  2.             JbpmConfiguration jbpmConfiguration = JbpmFactory.createJbpmConfiguration();
  3.             JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
  4.                  List result = null;
  5.                     try {
  6.                       Query query  = jbpmContext.getSession().createSQLQuery("select dm,mc from t_dm").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
  7.                       System.err.println("dm="+((HashMap)result.get(0)).get("DM"));
  8.                       result = query.list();
  9.                     } catch (Exception e) {
  10.                       throw new JbpmException("errmsg", e);
  11.                     } finally {
  12.                             jbpmContext.close();
  13.                     }
  14.                     return result;        
  15.     }

"select dm,mc from t_dm"

改为:

"select cast(dm as varchar2(10)) dm,mc from t_dm"

 

经过测试:

       在oracle或sqlServer下会遇到,查询数据表字段类型为char,如果使用Hibernate原生SQL去执行查询,往往只会返回一个字符.原因是char在java中只有两个字节。

 

解决方法

1.改成

   select cast(列 as varchar2(列大小)) from 表;或者改为 select trim(列) from 表

 

2.指定列返回的类型.

SQLQuery query = session.createSQLQuery(); 

query.addScalar(columnAlias,Type);

 


 

转载:

http://www.itpub.net/forum.php?mod=viewthread&tid=1610132

http://blog.csdn.net/FZfeng/article/details/5875964

分享到:
评论

相关推荐

    Hibernate中Sql语句

    这里的`addScalar`方法指定了结果集中两个字段的名称和类型,而`setResultTransformer`则指定了结果转换方式,即将查询结果映射为`SumPlace`对象列表。 ##### 3. 执行查询并获取结果 ```java return (List) query1....

    struts2和hibernate结合增删改查

    6. **结果集转换**:在查询后,将Hibernate查询得到的结果集转化为Struts2可传递的模型对象,如List或Map,然后返回相应的视图名称。 7. **配置Struts2-Hibernate整合**:在struts.xml配置文件中,为每个Action添加...

    传智播客李勇hibernate

    【传智播客李勇hibernate】课程详解了ORM框架Hibernate的核心概念和技术,适合初学者和想要深入了解Hibernate的开发者。以下是对课程内容的详细解析: 1. **引入ORM框架**: - 阻抗不匹配:由于Java是面向对象的...

    hibernate框架基础教程适合新手

    Hibernate是一个强大的Java持久化框架,它为开发人员提供了一种简单、高效的方式来处理数据库操作。这个基础教程针对新手,旨在让初学者从零开始掌握Hibernate的核心概念和使用方法。 1. **Hibernate概述** ...

    hibernate-3.2.rar

    3. **实体类与映射文件**:每个数据库表对应一个Java实体类,通过`hibernate-mapping`标签下的`class`元素定义,使用`id`表示主键,`property`或`element`表示其他字段。此外,还可以使用注解方式进行映射,如`@...

    hibernate-3.2.6

    Criteria API则提供了一种更面向对象的查询方式,无需编写字符串查询,更加安全和灵活。 6. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据库操作的原子性和一致性。 7. **缓存...

    Hibernate中关于Criteria查询条件的选择.doc

    在探讨Hibernate中关于Criteria查询条件的选择时,我们深入解析了Criteria接口如何被用来构建复杂的查询语句,以及各种表达式如何被运用到这些查询中。以下是对文档中提及的各个知识点的详细阐述: ### Criteria...

    hibernate Validator 使用指南

    在这个例子中,`User`类的`name`字段不能为空,`email`字段必须是有效的邮箱地址且长度在5到50个字符之间,`age`字段则需要在18到100之间。 五、验证过程 在实际应用中,我们通常通过调用`Validator.validate()`...

    Hibernate中Criteria的使用

    4. **分组(Projections)**:定义查询结果的返回字段,可以是单个属性、计算字段或者聚合函数。例如,统计不同城市的用户数量: ```java criteria.setProjection(Projections.groupProperty("city")); criteria....

    java面试宝典

    139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...

    Hibernate 帮助手册 API

    8. **Criteria查询**:除了HQL外,Hibernate还提供了Criteria API,它提供了一种更面向对象的方式来构建查询,无需编写字符串查询语句。 9. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理...

    hibernate-性能优化

    - **使用索引**:确保涉及的字段有合适的索引,以加速查询。 - **限制结果集大小**:使用 `LIMIT` 或 `FIRST` 来控制返回的数据量,避免拉取大量无用数据。 3. **API 正确使用**: - **集合与查询 API**:根据...

    Hibernate基础和入门:新建表和插入表

    11. **Criteria查询**:除了HQL外,Hibernate还提供Criteria API进行动态查询,无需编写字符串查询,更安全且易于维护。 12. **缓存机制**:Hibernate支持一级缓存(Session级别的)和二级缓存(SessionFactory级别...

    hibernate3.6 文档(pdf 格式)

    - **查询语言替换**:允许在运行时替换 HQL 查询中的部分字符串。 - **Hibernate 统计信息**:启用 Hibernate 的统计功能以收集执行信息。 - **日志**:设置 Hibernate 日志记录,以调试或监控应用程序行为。 - *...

    hibernate-3.3.2.API帮助HTML版本

    Hibernate,作为一个流行的Java对象关系映射(ORM)框架,为开发者提供了强大的数据持久化能力,使得在Java应用程序中处理数据库操作变得更为便捷。Hibernate 3.3.2 API帮助HTML版本是开发者们学习和理解Hibernate...

    hibernate V3.12中文参考手册

    8. ** Criteria 查询**:另一种查询方式,提供了一种基于对象的API来构建查询,避免了字符串拼接SQL可能导致的错误。 9. **Criteria API**:允许动态构造查询,提供了更强大的查询能力,如限制结果集大小、排序、...

    hibernate所用到HQL经典语句大全

    使用`NEW Map(...)`可以将查询结果封装成`Map`对象,便于根据字段名称访问。 - **返回实体对象**: ```java String hql = "SELECT NEW Cat(c.name, c.createDate) FROM Cat c"; List<Cat> catList = session....

    hibernate-validator-6.1.2.Final-dist.zip

    《Hibernate Validator:深入理解Java参数校验框架》 Hibernate Validator是Java世界中广泛...无论是在Spring MVC还是其他Java应用中,Hibernate Validator都是不可或缺的一部分,值得每一位Java开发者掌握和使用。

    Hibernate 参考文档

    - **延迟初始化(延迟加载)**:一种性能优化手段,只在真正需要时加载关联数据。 - **集合排序**:对集合中的元素进行排序的映射方式。 - **使用**:一种特殊的集合映射方式,适用于某些场景。 - **双向关联**:...

    Hibernate Reference Documentation(Hibernate参考手册)

    ### Hibernate参考手册知识点详解 #### 一、简介与目标 **Hibernate** 是一款开源的对象关系映射(ORM)框架,其主要目标是减轻开发者在数据持久化编程中的工作量,帮助开发者实现对象模型与数据库之间的无缝对接...

Global site tag (gtag.js) - Google Analytics