`

Java中使用hql,sql查询返回的list<Object> 转成需要的实体对象--方法讲解!

 
阅读更多



需要将Query对象setResultTransformer:



List list = session.createSQLQuery(sql).setResultTransformer(

Transformers.ALIAS_TO_ENTITY_MAP).list();

//此时,每个Object可以转换成一个Map

Map map = (Map) list.get(i);

map.get("PARENT_ID");  //这里的key 一定是 数据库对应的字段名才行







例如:





// 查询出数据 

  String hql = "select a.id as emergencyBasExeId,a.LEVEL as level,a.SEND_TIME as sender_time,a.NAME as name,a.CONTENT as content " +

    ",a.PROCESS_ID as processId,m.STATES as states,m.id as id,m.emergencyInfoSecondMgr.id as emergencySencondMgrId " +

    " from EmergencyInfoFirstExe a,  EventManage m where a.deleteFlag = 0 and a.id=m.emergencyInfoFirstExe.id ";

  // 查询出数据list

  List exeList = eventManageDao.notifyHqlPage(hql, pageNumber * pageSize, pageSize);



  // 返回所需要的数据List

  List<EventInfoView> reList = new ArrayList<EventInfoView>();





  //map.get("PARENT_ID");  //这里的key 一定是 数据库对应的字段名才行 

  //对返回List的数据封装 

  for(Object exe : exeList){

   EventInfoView event = new EventInfoView();

   //此时,每个Object可以转换成一个Map 

   Map map=(Map)exe;

   //然后可以使用map.get("属性名");即可取值

   event.setId(map.get("id").toString());

   event.setContent(map.get("content").toString());

   event.setEmergencyBasExeId(map.get("emergencyBasExeId").toString());

   event.setEmergencySencondMgrId(map.get("emergencySencondMgrId").toString());

   event.setEmergencyTitle(map.get("emergencyTitle").toString());

   event.setLevel(map.get("level").toString());

   event.setName(map.get("name").toString());

   event.setProcessId(map.get("processId").toString());

   event.setProcessName(map.get("processName").toString());

   event.setSender_time(map.get("sender_time").toString());

   event.setStates(map.get("states").toString());

   //....

   reList.add(event);

  }

 

分享到:
评论

相关推荐

    JPA--HQL查询(手动写原生查询sql,复杂查询必备).pdf

    在查询结果处理方面,需要根据返回的结果来定义接收数据类型,例如,返回的结果是一个列表,可以使用 List&lt;Object[]&gt; 来接收,然后遍历列表,处理每个元素。 以下是 HQL 查询的示例代码: 首先,添加 ...

    Spring/泛型Hibernate的实现

    public List&lt;T&gt; find(String hql, Object... values) { return (List&lt;T&gt;) this.hibernateTemplate.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws ...

    hibernate 通用分页

    内部实现可能涉及SQL的COUNT统计和LIMIT/OFFSET分页语法,或者使用HQL(Hibernate Query Language)的`setFirstResult`和`setMaxResults`方法进行分页。例如: ```java public class PageHelp { public static &lt;T&gt;...

    hibernate将本地SQL查询结果封装成对象

    首先,本地SQL查询(Native SQL)是指直接在Hibernate中使用原生的SQL语句进行查询,而不是使用HQL(Hibernate Query Language)。这允许开发者充分利用SQL的功能,比如进行复杂的统计计算或者处理特定数据库的特性...

    ssha 最新 最完整 配置信息

    -- 使用HQL更新数据库结构 --&gt; &lt;property name="hbm2ddl.auto"&gt;update&lt;/property&gt; &lt;!-- 设置Hibernate使用的方言 --&gt; &lt;property name="dialect"&gt;org.hibernate.dialect.MySQLDialect&lt;/property&gt; &lt;/session-...

    jpa 别名转实体

    在JPA中,我们经常需要处理SQL查询结果,这些结果可能包含别名,例如在HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)查询中定义的别名。别名的作用是为了使查询语句更加简洁易读,并且...

    HQL 语法总结 实体查询

    HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体查询,并提供一些实际应用场景。 ##### 示例:TUser 类 ...

    hql语句查询

    不等查询使用`&lt;&gt;`操作符,范围查询可以通过`between`和`[not] in`实现。例如: ```java hql = "from MyEntity where price not between :minPrice and :maxPrice"; query.setParameter("minPrice", 100); query....

    HQL查询pdf资料

    HQL查询的基本结构包括关键字如`SELECT`、`FROM`、`WHERE`、`GROUP BY`、`HAVING`、`ORDER BY`等,这些关键字的使用与SQL非常相似,但是HQL还支持面向对象的特性,如属性路径表达式。 ##### 实体的更新与删除 在...

    hibernate 教程

    使用本地SQL的查询&lt;br&gt;9.4. 更新对象&lt;br&gt;9.4.1. 在同一Session中更新&lt;br&gt;9.4.2. 更新从session脱离的对象&lt;br&gt;9.4.3. 把与Session脱离的对象重新绑定&lt;br&gt;9.5. 删除持久化对象&lt;br&gt;9.6. 同步(Flush)&lt;br&gt;9.7. 结束一...

    hibernate

    使用本地SQL的查询&lt;br&gt;9.4. 更新对象&lt;br&gt;9.4.1. 在同一Session中更新&lt;br&gt;9.4.2. 更新从session脱离的对象&lt;br&gt;9.4.3. 把与Session脱离的对象重新绑定&lt;br&gt;9.5. 删除持久化对象&lt;br&gt;9.6. 同步(Flush)&lt;br&gt;9.7. 结束一...

    Hibernate HQL查询.docx

    - 有时,可能只需要查询部分属性而不是整个实体对象,这时可以使用 `list()` 返回一个 Object[] 数组。 - 示例代码如下: ```java String hql = "SELECT u.id, u.name FROM User u"; List&lt;Object[]&gt; resultList...

    Hibernate与HQL

    - **一对多关联映射**(`one-to-many`):一个实体对应多个实体实例,使用`&lt;list&gt;`、`&lt;set&gt;`、`&lt;bag&gt;`或`&lt;map&gt;`标签进行映射。 - **多对一关联映射**(`many-to-one`):多个实体对应一个实体实例,通常在子类中通过...

    Hiberbate hql总结

    在Java持久化框架Hibernate中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和属性的名字来编写查询,而不是直接使用数据库的SQL语法。以下是对HQL的总结,主要关注如何查询数据: ...

    Native-SQL查询 (1).ppt

    本节主要探讨的是如何在Hibernate框架中使用Native SQL查询,它允许开发者直接执行原生的SQL语句,绕过HQL(Hibernate Query Language)进行更灵活的数据操作。 Hibernate是一个流行的Java对象关系映射(ORM)框架...

    hibernateHQL基本查询

    - **自动封装**:使用 HQL 查询时,结果会自动封装成对应的 Java 对象,减少了程序员手动处理结果集的工作量。 - **跨数据库支持**:HQL 能够根据不同的数据库方言自动生成对应的 SQL 语句,提高了代码的可移植性。 ...

    hibernate所用到HQL经典语句大全

    - 当使用`NEW`语法返回实体对象时,实体类`Cat`必须包含一个接受两个参数(`String name`, `Date createDate`)的公共构造方法。 - 查询结果将自动转换为对应的实体类对象。 #### 二、条件查询和运算符 **2.1 ...

    Hibernate hql查询语法总结

    注意,执行`from Student, Course`这样的HQL会返回两个对象的笛卡尔积,而非简单的联合查询,通常在实际应用中很少使用。 3. 属性查询: HQL支持查询单个或多个属性。例如,查询所有学生的姓名和年龄: ```java // ...

    hibernate3中通过nativesql或取部分字段并映射为具体对象的实现

    在Java的持久化框架Hibernate中,除了使用HQL(Hibernate Query Language)进行数据查询外,还可以使用Native SQL来访问数据库。本篇文章将深入探讨在Hibernate3中如何通过Native SQL查询部分字段,并将其映射到具体...

Global site tag (gtag.js) - Google Analytics