`
whale
  • 浏览: 44588 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Hql结果不是理想的Domain object时

    博客分类:
  • Java
阅读更多
很多时候因为需求写hql会比较复杂,常常返回不是理想的Domain object的list,而是其它object,或是一个数组的list集合,若是单一的object还好说,那么如何将这个object分解取出呢:)
a simpe sample:
Iterator it = session.createQuery("select c.id, c.name, count(o)"
+" from Customer c join c.orders o group by c.id").list().iterator();
		while(it.hasNext())
		{
			Object[] pair = (Object[])it.next();
			Long id = (Long)pair[0];
			String name = (String)pair[1];
			Integer count = (Integer)pair[2];
		}


分享到:
评论
1 楼 colin4k 2007-11-27  
Iterator<TestObj> it = session.createQuery("select new com.test.TestObj(c.id, c.name, count(o))"  
+" from Customer c join c.orders o group by c.id").list().iterator();   
        while(it.hasNext())   
        {   
            TestObj obj = it.next();   
        }   

相关推荐

    Hibernate的查询操作

    在处理返回结果时,如果希望直接将查询结果转换为实体类对象,可以使用构造函数来指定返回的对象类型。例如,`select new 包名.类名(属性1,属性2……) from 实体类`,这需要在实体类中添加对应的带参构造方法,参数...

    Hibernate原理与应用 ppt

    有三种常见的开发方式:官方推荐的由Domain Object到mapping再到db,从数据库开始生成mapping和Domain Object,或者直接从映射文件开始。一个典型的Hibernate领域对象如`User`,需要有默认构造函数和标识符id(主键...

    hibernate学习笔记

    - **编写 domain object**:domain object,也称为实体类,代表数据库中的表。通常包含对应字段的属性和getter/setter方法,且需提供无参构造器。 - **书写 domain object 映射文件**:使用XML文件(如`hibernate-...

    hibernate的详细学习笔记

    这些POJO类通常称为**域对象**(Domain Object),并通过注解或XML文件映射到具体的数据库表上。 #### 四、Hibernate配置文件详解 **Hibernate配置文件**主要包括以下几部分: - **核心配置文件**:`hibernate.cfg...

    hibernate学习

    - **Domain Object**:是与数据库表对应的Java对象,通常需要有默认构造函数、主键标识符(可选,但推荐),并保持非final状态以支持懒加载。 - **Mapping**:通过hbm.xml文件,将Domain Object的属性与数据库表的...

    hibernate核心知识

    Hibernate是一种Object-Relational Mapping(ORM)框架,它的主要目标是简化Java应用程序中的数据库操作,使得开发者能够将精力集中在业务逻辑上,而非底层的SQL语句和数据库交互。Hibernate通过将Java对象与数据库...

    domain-model-com-jpa

    Hibernate支持多种数据库,包括MySQL、Oracle、PostgreSQL等,它简化了数据库连接管理,提供了 Criteria 查询、HQL(Hibernate Query Language)以及 Criteria API,使得查询更加灵活。 4. 使用JPA和Hibernate的...

    S2SH分页实例

    Criteria criteria = session.createCriteria(DomainObject.class); criteria.setFirstResult(startIndex); criteria.setMaxResults(pageSize); List&lt;DomainObject&gt; results = criteria.list(); ``` Spring框架在...

    传智播客李勇hibernate

    - Domain Object(领域对象):代表业务逻辑中的实体,应包含默认构造方法和主键标识符。 - hbm.xml映射文件:定义对象与数据库表的映射关系,包括字段映射、主键生成策略等。 - CRUD(Create、Read、Update、...

    基于struts2 spring2.5 hibernate3的人事管理系统 源码完整包

    Struts2的核心是Action,Action是业务逻辑的载体,它接收来自视图的请求,处理后返回结果到视图。Struts2通过配置文件或注解定义Action与URL的映射关系,使得请求和业务逻辑的对应关系清晰。 Spring2.5作为依赖注入...

    struts2面试题(个人四处搜集,吐血推荐)

    XWork是一个Command模式的实现,专注于提供核心功能,如拦截器、运行时属性验证、类型转换、OGNL表达式语言和IoC容器。它的设计目标是创建一个通用且可扩展的框架,而不是特定领域的解决方案。WebWork2则在XWork的...

    Struts+Spring+Hibernate

    Struts的核心是Action类,它接收请求、执行相应操作并将结果转发给视图。Struts还负责处理异常、模型绑定和UI验证。在编写Struts展示层的代码时,应避免直接进行数据库操作、业务逻辑处理和事务管理,这些任务应交给...

    hibernate原理与应用

    1. 从领域对象(Domain Object)出发,定义对象模型并创建对应的映射文件。 2. 从数据库开始,使用工具自动生成映射文件和领域对象。 3. 直接编写映射文件,然后根据文件创建领域对象。 领域对象是Hibernate的核心...

    传智播客 李勇 hibernate 的ppt

    1. **Domain Object**(领域对象):代表业务逻辑中的实体,如User类,需要有默认构造函数和主键标识符(id)。 2. **Mapping**:通过hbm.xml文件定义对象与数据库表的映射规则,包括字段对应关系、主键生成策略等。...

    学习三大框架基础知识的总结

    **J2EE开发体系结构**中,领域对象(Domain Object)是业务实体的Java类,它们代表了应用中的核心业务概念。DAO(Data Access Object)层负责与数据库交互,提供了封装好的CRUD操作。业务逻辑层(Business Logic ...

Global site tag (gtag.js) - Google Analytics