`
归来朝歌
  • 浏览: 7837 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

HQL之投影查询

阅读更多



        在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?

针对上面的场景,如果需要将一个对象查出来:

HQL语句写“from 对象”即可

Session session = HibernateUtil.openSession();
		List<Student> student = session.createQuery("from Student s left join fetch s.course c").list();
		for(Student o:student){
			if(o.getS_id() == 5){
				Set<Course> course = o.getCourse() ;
				for(Course temp : course)
					System.out.println(temp.getName());
			}
			
		}
		session.close();

 

如果需要查出一个表或者几个表中的字段,需要用带构造参数的查询,也称为投影查询

步骤:

1.准备一个投影类,里面放置你要的属性,比如

package bean;

public class Relation {
	private String sname;
	private String cname;
	
	public Relation(String sname, String cname) {
		super();
		this.sname = sname;
		this.cname = cname;
	}
	
	
}

 

2)写HQL语句并测试

public void testProperty_FromTables(){
		Session session = HibernateUtil.openSession();
		String HQL="select new bean.Relation(s.name,c.name) from Student s " +
						"inner join s.course c";
		List<Course> list = session.createQuery(HQL).list();
		session.close();	
	}

 最后,可以发现Course表中只有你要的字段属性,而其他字段为空。

 

说明一下需求分析:

         1、如果需要查询一个对象,不用带select,如果两张表以上,则用fetch查询

         2、如果需要查询几个字段,则用带构造函数的查询【较少使用】,不能加fetch。同时需要注意,构造函数和你要查的参数属性相对应,并且参数个数保持一致

         3、在HQL语句中,from后面都是持久化对象,其他的部分都是属性而不是字段



 

  • 大小: 4.7 KB
0
0
分享到:
评论

相关推荐

    hibernate hql语句 投影查询的三种方式.docx

    在Hibernate框架中,HQL(Hibernate Query Language)是用于操作对象关系映射的查询语言,类似于SQL,但它是面向对象的。本篇文章将详细介绍在Hibernate中进行投影查询的三种主要方式:直接查询、查询返回对象以及...

    hibernate hql各类查询范例

    - **Projections.projectionList()** 和 **Projections.max()** 用于定义查询结果的投影。 ### 4. 执行 HQL 更新操作 第四个示例展示了如何使用 HQL 执行更新操作。该方法名为 `downAllGroup`,其功能是更新一组...

    SSH笔记-HQL查询、QBC、本地SQL查询

    SSH笔记-HQL查询(基于位置参数查询、基于命名参数查询、分页查询、命名查询、投影查询报表查询、内/迫切内/左外/迫切左外连接查询)、QBC(QBC检索查询、统计查询、排序查询、HQL操作数据库)、本地SQL查询

    hibernate 查询?Hibernate的HQL查询

    Hibernate作为流行的Java ORM框架,它的查询机制是其独特之处。其中,Criteria Query允许通过对象模型进行查询,提高了代码的可读性,但不支持所有复杂的SQL操作。而HQL则弥补了这一不足,它是一种面向对象的查询...

    HQL语言大全 高清晰可复制版

    HQL,全称为Hibernate Query Language,是Hibernate框架中的查询语言,它允许开发者以类似SQL的方式查询对象。在Java开发中,尤其是在处理大量数据持久化时,Hibernate作为一个强大的对象关系映射(ORM)工具,极大...

    HQL语句详解Select/update/deletefromwhere...

    此外,还可以利用HQL的投影查询特性,创建一个新的对象实例: ```java List&lt;User&gt; users = session.createQuery("select new User(user.name, user.age) from User user").list(); for (User user : users) { ...

    另类查询 Hibernate HQL 深度历险

    HQL支持多种查询功能,包括投影、约束、聚合和分组。 **投影**是HQL中的基础概念,允许选择返回的对象或对象的属性。`from`子句用于获取指定类的所有实例,例如`from Order`将返回`Order`类的所有对象,这与SQL中的...

    hibernate02:session对象、hql查询、在线查询也叫对象查询、离线查询

    HQL支持各种操作,如选择、投影、连接、分组、排序等,还可以进行复杂的条件查询和子查询。例如,以下是一个简单的HQL查询示例,用于获取所有年龄大于30岁的用户: ```java String hql = "FROM User WHERE age &gt; 30...

    学习HQL语句

    投影函数是 HQL 中的一个基本概念,它返回查询结果中的对象或对象的属性。使用 from 和 select 子句可以完成投影操作。from 子句返回指定的类的所有实例,而 select 子句可以选择对象的某些属性。 例如,from Order...

    HibernateHql综合测试小程序

    HQL支持基本的查询操作,如选择、投影、连接、分组、排序,以及更复杂的子查询和函数调用。通过这个测试程序,我们可以了解到HQL的各种用法,例如: 1. **选择查询**:通过指定类名或别名,HQL可以获取特定实体的...

    强烈建议的HQL语法规则详解

    HQL提供了丰富的查询功能,包括选择、投影、连接、分组、排序等,同时也支持子查询和嵌套查询。此外,HQL还可以直接调用对象的方法,使得查询更加灵活。在实际开发中,熟练掌握HQL能够显著提高代码的可读性和可维护...

    hibernate查询语句--HQL

    在 Hibernate 中,执行查询操作的主要方式之一是使用 Hibernate 查询语言(HQL)。 HQL 是一种面向对象的查询语言,它支持标准 SQL 的大部分功能,并添加了一些额外的功能,如对象导航、集合投影等。本文将深入探讨...

    HQL实用技术

    HQL (Hibernate Query Language) 是一种面向对象的查询语言,它允许开发人员以面向对象的方式编写查询,而不是直接使用SQL。HQL的关键字通常不区分大小写,但在Java类与属性的名称中则需要注意大小写的一致性。 ###...

    hql语句的学习,很有用的东西

    HQL支持多种查询操作,包括选择、投影、分组、排序、连接等。例如,如果你想要根据年龄筛选用户并按姓名排序,可以这样写: ```java query = session.createQuery("from User where age &gt; 18 order by name"); ...

    HQL语句的用法

    投影是HQL中获取数据的基本方式,它定义了查询结果的结构。投影可以是单个对象、对象的属性或者一组属性。`from`子句用于获取指定类的所有实例,例如`from Order`将返回Order类的所有对象,这与SQL中的`SELECT * ...

    hql文档详解 相信对初步的朋友有帮助

    使用`GROUP BY`和`ORDER BY`子句对查询结果进行分组和排序也是HQL的重要功能之一。 ```java String hql = "select user.name, COUNT(*) from User as user group by user.name order by COUNT(*) desc"; List[]&gt;...

    Hibernate连表查询 Hibernate连表查询

    如果查询结果包含多个字段,并且希望将这些字段封装成一个对象,则可以使用Hibernate的投影列表功能,或者手动创建一个新的类来存储查询结果。 ### 总结 本文主要介绍了Hibernate中的连表查询方法及其在实际开发中...

    hibernate的hql语句

    【hibernate的HQL语句】是Hibernate框架中用于操作数据库的重要组成部分,它是一种面向对象的查询语言,类似于SQL,但更加强调对象的概念。HQL能够处理复杂的对象关系,如继承、多态和关联,使得在进行SSH(Spring、...

    hibernate_HQL

    HQL支持基本的查询操作,如选择、投影、分组、排序以及连接操作。 ### 2. 基本查询结构 HQL查询的基本结构包括:从句(FROM)、选择字段(SELECT)、条件(WHERE)和排序(ORDER BY)。一个简单的HQL查询可能如下...

    hql语句[定义].pdf

    HQL的强大之处在于它能够充分利用面向对象的特性,如多态性、继承和组合,同时提供丰富的查询功能,包括投影、约束、聚合和分组。 ### 投影(Projection) 投影是指查询结果中包含的对象或对象的属性。在HQL中,`...

Global site tag (gtag.js) - Google Analytics