需要将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);
}
相关推荐
在查询结果处理方面,需要根据返回的结果来定义接收数据类型,例如,返回的结果是一个列表,可以使用 List<Object[]> 来接收,然后遍历列表,处理每个元素。 以下是 HQL 查询的示例代码: 首先,添加 ...
public List<T> find(String hql, Object... values) { return (List<T>) this.hibernateTemplate.execute(new HibernateCallback() { @Override public Object doInHibernate(Session session) throws ...
内部实现可能涉及SQL的COUNT统计和LIMIT/OFFSET分页语法,或者使用HQL(Hibernate Query Language)的`setFirstResult`和`setMaxResults`方法进行分页。例如: ```java public class PageHelp { public static <T>...
首先,本地SQL查询(Native SQL)是指直接在Hibernate中使用原生的SQL语句进行查询,而不是使用HQL(Hibernate Query Language)。这允许开发者充分利用SQL的功能,比如进行复杂的统计计算或者处理特定数据库的特性...
-- 使用HQL更新数据库结构 --> <property name="hbm2ddl.auto">update</property> <!-- 设置Hibernate使用的方言 --> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> </session-...
在JPA中,我们经常需要处理SQL查询结果,这些结果可能包含别名,例如在HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)查询中定义的别名。别名的作用是为了使查询语句更加简洁易读,并且...
HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以一种类似于SQL但更接近于面向对象的方式来编写查询。本文将详细介绍HQL中的实体查询,并提供一些实际应用场景。 ##### 示例:TUser 类 ...
不等查询使用`<>`操作符,范围查询可以通过`between`和`[not] in`实现。例如: ```java hql = "from MyEntity where price not between :minPrice and :maxPrice"; query.setParameter("minPrice", 100); query....
HQL查询的基本结构包括关键字如`SELECT`、`FROM`、`WHERE`、`GROUP BY`、`HAVING`、`ORDER BY`等,这些关键字的使用与SQL非常相似,但是HQL还支持面向对象的特性,如属性路径表达式。 ##### 实体的更新与删除 在...
使用本地SQL的查询<br>9.4. 更新对象<br>9.4.1. 在同一Session中更新<br>9.4.2. 更新从session脱离的对象<br>9.4.3. 把与Session脱离的对象重新绑定<br>9.5. 删除持久化对象<br>9.6. 同步(Flush)<br>9.7. 结束一...
使用本地SQL的查询<br>9.4. 更新对象<br>9.4.1. 在同一Session中更新<br>9.4.2. 更新从session脱离的对象<br>9.4.3. 把与Session脱离的对象重新绑定<br>9.5. 删除持久化对象<br>9.6. 同步(Flush)<br>9.7. 结束一...
- 有时,可能只需要查询部分属性而不是整个实体对象,这时可以使用 `list()` 返回一个 Object[] 数组。 - 示例代码如下: ```java String hql = "SELECT u.id, u.name FROM User u"; List<Object[]> resultList...
- **一对多关联映射**(`one-to-many`):一个实体对应多个实体实例,使用`<list>`、`<set>`、`<bag>`或`<map>`标签进行映射。 - **多对一关联映射**(`many-to-one`):多个实体对应一个实体实例,通常在子类中通过...
在Java持久化框架Hibernate中,HQL(Hibernate Query Language)是一种面向对象的查询语言,它允许开发者以类和属性的名字来编写查询,而不是直接使用数据库的SQL语法。以下是对HQL的总结,主要关注如何查询数据: ...
本节主要探讨的是如何在Hibernate框架中使用Native SQL查询,它允许开发者直接执行原生的SQL语句,绕过HQL(Hibernate Query Language)进行更灵活的数据操作。 Hibernate是一个流行的Java对象关系映射(ORM)框架...
- **自动封装**:使用 HQL 查询时,结果会自动封装成对应的 Java 对象,减少了程序员手动处理结果集的工作量。 - **跨数据库支持**:HQL 能够根据不同的数据库方言自动生成对应的 SQL 语句,提高了代码的可移植性。 ...
- 当使用`NEW`语法返回实体对象时,实体类`Cat`必须包含一个接受两个参数(`String name`, `Date createDate`)的公共构造方法。 - 查询结果将自动转换为对应的实体类对象。 #### 二、条件查询和运算符 **2.1 ...
注意,执行`from Student, Course`这样的HQL会返回两个对象的笛卡尔积,而非简单的联合查询,通常在实际应用中很少使用。 3. 属性查询: HQL支持查询单个或多个属性。例如,查询所有学生的姓名和年龄: ```java // ...
在Java的持久化框架Hibernate中,除了使用HQL(Hibernate Query Language)进行数据查询外,还可以使用Native SQL来访问数据库。本篇文章将深入探讨在Hibernate3中如何通过Native SQL查询部分字段,并将其映射到具体...