Hibernate3 返回查询结果为Map时 ,有的字段只返回第一位字符?返回结果,HashMap KEY DM ,VALUE 总把结果截断,返回第一个字符。
- public static List geDmList(){
- JbpmConfiguration jbpmConfiguration = JbpmFactory.createJbpmConfiguration();
- JbpmContext jbpmContext = jbpmConfiguration.createJbpmContext();
- List result = null;
- try {
- Query query = jbpmContext.getSession().createSQLQuery("select dm,mc from t_dm").setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
- System.err.println("dm="+((HashMap)result.get(0)).get("DM"));
- result = query.list();
- } catch (Exception e) {
- throw new JbpmException("errmsg", e);
- } finally {
- jbpmContext.close();
- }
- return result;
- }
"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
相关推荐
这里的`addScalar`方法指定了结果集中两个字段的名称和类型,而`setResultTransformer`则指定了结果转换方式,即将查询结果映射为`SumPlace`对象列表。 ##### 3. 执行查询并获取结果 ```java return (List) query1....
6. **结果集转换**:在查询后,将Hibernate查询得到的结果集转化为Struts2可传递的模型对象,如List或Map,然后返回相应的视图名称。 7. **配置Struts2-Hibernate整合**:在struts.xml配置文件中,为每个Action添加...
【传智播客李勇hibernate】课程详解了ORM框架Hibernate的核心概念和技术,适合初学者和想要深入了解Hibernate的开发者。以下是对课程内容的详细解析: 1. **引入ORM框架**: - 阻抗不匹配:由于Java是面向对象的...
Hibernate是一个强大的Java持久化框架,它为开发人员提供了一种简单、高效的方式来处理数据库操作。这个基础教程针对新手,旨在让初学者从零开始掌握Hibernate的核心概念和使用方法。 1. **Hibernate概述** ...
3. **实体类与映射文件**:每个数据库表对应一个Java实体类,通过`hibernate-mapping`标签下的`class`元素定义,使用`id`表示主键,`property`或`element`表示其他字段。此外,还可以使用注解方式进行映射,如`@...
Criteria API则提供了一种更面向对象的查询方式,无需编写字符串查询,更加安全和灵活。 6. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据库操作的原子性和一致性。 7. **缓存...
在探讨Hibernate中关于Criteria查询条件的选择时,我们深入解析了Criteria接口如何被用来构建复杂的查询语句,以及各种表达式如何被运用到这些查询中。以下是对文档中提及的各个知识点的详细阐述: ### Criteria...
在这个例子中,`User`类的`name`字段不能为空,`email`字段必须是有效的邮箱地址且长度在5到50个字符之间,`age`字段则需要在18到100之间。 五、验证过程 在实际应用中,我们通常通过调用`Validator.validate()`...
4. **分组(Projections)**:定义查询结果的返回字段,可以是单个属性、计算字段或者聚合函数。例如,统计不同城市的用户数量: ```java criteria.setProjection(Projections.groupProperty("city")); criteria....
139、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN时如何接受初始化...
8. **Criteria查询**:除了HQL外,Hibernate还提供了Criteria API,它提供了一种更面向对象的方式来构建查询,无需编写字符串查询语句。 9. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理...
- **使用索引**:确保涉及的字段有合适的索引,以加速查询。 - **限制结果集大小**:使用 `LIMIT` 或 `FIRST` 来控制返回的数据量,避免拉取大量无用数据。 3. **API 正确使用**: - **集合与查询 API**:根据...
11. **Criteria查询**:除了HQL外,Hibernate还提供Criteria API进行动态查询,无需编写字符串查询,更安全且易于维护。 12. **缓存机制**:Hibernate支持一级缓存(Session级别的)和二级缓存(SessionFactory级别...
- **查询语言替换**:允许在运行时替换 HQL 查询中的部分字符串。 - **Hibernate 统计信息**:启用 Hibernate 的统计功能以收集执行信息。 - **日志**:设置 Hibernate 日志记录,以调试或监控应用程序行为。 - *...
Hibernate,作为一个流行的Java对象关系映射(ORM)框架,为开发者提供了强大的数据持久化能力,使得在Java应用程序中处理数据库操作变得更为便捷。Hibernate 3.3.2 API帮助HTML版本是开发者们学习和理解Hibernate...
8. ** Criteria 查询**:另一种查询方式,提供了一种基于对象的API来构建查询,避免了字符串拼接SQL可能导致的错误。 9. **Criteria API**:允许动态构造查询,提供了更强大的查询能力,如限制结果集大小、排序、...
使用`NEW Map(...)`可以将查询结果封装成`Map`对象,便于根据字段名称访问。 - **返回实体对象**: ```java String hql = "SELECT NEW Cat(c.name, c.createDate) FROM Cat c"; List<Cat> catList = session....
《Hibernate Validator:深入理解Java参数校验框架》 Hibernate Validator是Java世界中广泛...无论是在Spring MVC还是其他Java应用中,Hibernate Validator都是不可或缺的一部分,值得每一位Java开发者掌握和使用。
- **延迟初始化(延迟加载)**:一种性能优化手段,只在真正需要时加载关联数据。 - **集合排序**:对集合中的元素进行排序的映射方式。 - **使用**:一种特殊的集合映射方式,适用于某些场景。 - **双向关联**:...
### Hibernate参考手册知识点详解 #### 一、简介与目标 **Hibernate** 是一款开源的对象关系映射(ORM)框架,其主要目标是减轻开发者在数据持久化编程中的工作量,帮助开发者实现对象模型与数据库之间的无缝对接...