举例说明:
数据库中有表:student(studentid, studentname, age)
表:class(classid, classname, studentid)
程序中有VO:StudentInfo(studentid, studentname, age, classname) (假设StudentInfo在com.test包中)
在不使用hibernate做关系映射的前提下(抛弃了hibernate的精髓,做法不可取···),想通过一个HQL直接返回一个已经组织好的List<StudentInfo>,比较精辟的做法是:
DAO中:
String sql = "select new com.test.StudentInfo(s, c.classname)";
sql += " from Student s, Class c where s.studentid=c.studentid";
Session session = this.getSession();
Query query = session.createQuery(sql);
return query.list();
StudentInfo中肯定要做一下准备,写一个合适的构造方法:
public StudentInfo(Student s, String classname) {
this.studentid = s.studentid;
this.studentname = s.studentname;
this.age = s.age;
this.classname = classname;
}
这样就可以了。
另外:
上面HQL的做法详见:hibernate文档的[14.4 select子句]
分享到:
相关推荐
Hibernate Query Language,简称HQL,是Hibernate框架中用于执行数据库查询的一种面向对象的查询语言。它与传统的SQL语言非常相似,但更简洁,更重要的是,HQL理解面向对象的概念,如继承、多态、关联、聚合和组合。...
Hibernate Query Language(HQL)是Hibernate框架中用于操作对象关系映射(ORM)的一种查询语言。它是面向对象的,设计目的是让开发人员可以使用对象而不是数据库表进行查询,从而简化了与数据库交互的过程。HQL的...
在Java的持久化框架中,Hibernate是一个非常重要的工具,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地在Java对象和数据库表之间进行数据操作。当我们需要执行一些特殊的、复杂的或者非标准的SQL...
在Java的持久化框架Hibernate中,SQLQuery是用于执行自定义SQL语句的重要工具,它允许开发者绕过ORM(对象关系映射)的抽象层,直接与数据库进行交互。这篇博客"Hibernate SQLQuery 本地查询"可能详细讲解了如何利用...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者用面向对象的方式操作数据库。在这个“hibernate 实践 - Query详解”的主题中,我们将深入理解如何使用Query接口来执行SQL查询,并...
本篇将深入探讨Hibernate的条件查询,帮助开发者更好地理解和运用这一工具。 1. **HQL(Hibernate Query Language)** HQL是Hibernate提供的面向对象的查询语言,类似于SQL,但操作的对象是对象而非表。例如,要...
本文将探讨Hibernate中两种主要的分页方式:`query.scroll()`和使用`query.setFirstResult(), query.setMaxResults()`。 首先,`query.scroll()`方法基于JDBC 2.0的可滚动结果集实现。这种方式允许应用程序在结果...
- 子查询可以返回单个值,也可以返回对象列表。 8. **参数化查询** - 使用问号(?)作为占位符,防止SQL注入攻击。 - 可以使用Query接口的setParameter()方法设置参数值。 9. **案例分析** - "HQL查询语言.doc...
而Hibernate作为一种流行的Java持久化框架,它允许开发者通过ORM(对象关系映射)方式与数据库进行交互。本篇文章将深入探讨如何使用Hibernate的Query接口来调用Oracle的存储过程和函数,以及提供相关的示例代码和...
这里的 `from Book` 表示从 `Book` 类中获取所有记录,`query.list()` 返回的是一个包含 `Book` 对象的列表。 ### 3.2 分页查询 为了提高用户体验,我们经常需要对查询结果进行分页显示。HQL 提供了 `...
**标题:Hibernate 操纵持久化对象** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本篇将详细讲解如何使用Hibernate来操纵持久化对象,这对于深入理解...
Hibernate对象的生命周期 Hibernate对象的生命周期 Hibernate对象的生命周期
### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射(ORM)框架,为Java开发者提供了一套高效且简洁的方式来处理数据库操作。它支持多种查询方式,包括面向对象的查询语言(HQL)...
首先,让我们了解一下Hibernate中的HQL(Hibernate Query Language),它是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近于Java。在HQL中,我们可以方便地使用聚合函数进行数据处理。例如,如果你想要...
`createQuery()`方法接收HQL语句,返回一个Query对象,然后调用`list()`方法获取所有数据。 2. **使用Criteria API** Criteria API提供了一种更加面向对象的方式来构建查询。查询所有数据的代码如下: ```java ...
5. 查询语言HQL:介绍Hibernate Query Language,一种面向对象的查询语言,用于检索和更新数据库中的对象。 6. Criteria查询和Criteria API:解释如何使用Criteria API进行动态查询,以及相比HQL的优点和使用场景。...
Hibernate通过将对象模型与关系数据库模型之间的映射进行自动化处理,极大地简化了数据访问层(DAO)的实现,让开发者可以专注于业务逻辑,而非底层的数据库操作。 Hibernate是什么? Hibernate是一个基于JDBC的ORM...
《精通Hibernate:Java对象持久化技术详解》这本书深入剖析了Hibernate这一流行的Java对象关系映射(ORM)框架,旨在帮助开发者全面理解并熟练掌握Hibernate的使用。Hibernate是Java开发中的重要工具,它简化了...
8. **查询**: Hibernate支持HQL(Hibernate Query Language)和 Criteria API,它们提供了面向对象的查询方式。另外,还可以使用原生的SQL查询并通过`@NamedNativeQuery`进行配置。 在这个"Spring4Hibernate5MVC...
2. 对象列表:使用list()方法,当查询预期返回多行时使用。 ```java List<Note> list = query.list(); ``` 四、自定义结果转换器 默认情况下,SQLQuery的查询结果会映射为Object数组或List[]>。然而,有时我们...