这个问题其实相当简单,但是,我在之前开发当中就不知道这样的用法。今天google到这种用法,实在是爽,也为以前没有好好search而懊恼。
问题:需要通过多表联合查询,并且返回单表所对应的实体。也就是说:希望返回包含实体的列表,而不是包含对象数组的列表。
解决方法:
hql 代码
- select b from BsEmployeeLog as b, PlanChange as pc where b.logId = pc.logId
- and pc.projectId = 0
之前查参考手册的时候,并没有查到这种用法,只知道说:如果查询一个实体的话,那就是
hql 代码
- from BsEmployee where ...
这样可以返回实体。
但是,如果你要查询属性的话,那么
hql 代码
- select b.id from BsEmployee as b where ...
这样返回的就是对象数组。
但是,没有提供上面的方式。当时查hibernate的参考手册也没有看到。今天写DAO代码,反复遇到这样的情况,总是退回去用Criteria,实在是不爽。因此,再次google,得到了正确用法。
其实,对于这种需求是肯定会有的,当时怎么没有好好google一把呢?
参考链接:
http://www.devarticles.com/c/a/Java/Hibernate-HQL-in-Depth/1/
分享到:
相关推荐
Hibernate框架Hql语句in中带参数的写法 Hibernate框架中,在使用HQL语句时,需要传递参数,而在HQL语句中使用in关键字时,需要特别注意参数的传递方式。在本文中,我们将讨论如何在HQL语句中使用in关键字带参数的...
HQL语句 HQL语句 HQL语句 HQL语句 HQL语句
Hql PPt Hql PPt
不喜欢使用myEclipse的...最近在项目中使用Hibernate,由于需要使用HQL,找了很多资料,大都是MyEclipse中自带的HQL工具。 由于MyEclipse是收费的,速度不是很理想。所以在网上找到了一个elipse插件 英文图文教程 ...
在深入探讨HQL语法之前,我们首先需要理解什么是HQL。HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。与SQL(Structured Query Language)不同,HQL是专为ORM(Object-...
### HQL语句使用大全 HQL(Hibernate Query Language)是一种面向对象的查询语言,它提供了灵活而强大的数据检索方式,使开发人员能够更高效地与数据库交互。本文将详细介绍HQL的基本用法及高级特性。 #### 1. ...
HQL支持多种表达式和操作符,包括但不限于`BETWEEN`、`IN`、`IS NULL`、`LIKE`等,这使得HQL具有很高的灵活性和表达能力。 #### 属性查询 除了查询整个实体,HQL还允许查询实体的特定属性。例如,只查询所有用户的...
- `select mother from Cat as mother, Cat as kit where kit in elements(mother.kittens)`:找到所有幼猫的母亲。 通过上述分析,我们可以看出HQL不仅提供了一种直观的方式来处理数据库查询,而且还包含了丰富的...
7. **子查询**:在HQL中,你可以嵌套查询,如 `from Student s where s.id in (select s.id from Student s where s.ssex='男')`,将返回所有男学生的对象。 8. **函数和方法调用**:HQL允许你在查询中使用数据库...
**HQL详解** Hibernate Query Language(HQL)是Hibernate框架中的对象关系映射查询语言,它允许开发者以面向对象的方式书写查询,而无需关心底层数据库的SQL语法。HQL是SQL的一个面向对象的版本,提供了更为简洁且...
【HQL基础】 HQL,全称Hibernate Query Language,是Hibernate框架提供的面向对象的查询语言,它类似于SQL,但更专注于对象模型而非数据库表结构。HQL是Hibernate官方推荐的检索数据的主要方式,因为它能够更好地...
之前写好SQL,再到代码里面来写,语句复杂的看的时不时细节会忘记,用sql转换hql工具,直接贴近了就可以了;
在深入探讨Hibernate的HQL语言之前,我们先理解一下什么是HQL。HQL,全称Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言,它的语法结构与SQL相似,但主要针对对象和实体进行操作,而不是...
【HQL简介】 HQL,全称Hibernate Query Language,是Hibernate框架中推荐的主要查询语言。它是面向对象的,设计用于处理持久化对象的查询,同时借鉴了SQL的语法结构,使得开发人员能够以更接近数据库操作的方式进行...
HQL,全称为Hibernate Query Language,是Hibernate框架中的查询语言,它允许开发者以类似SQL的方式查询对象。在Java开发中,尤其是在处理大量数据持久化时,Hibernate作为一个强大的对象关系映射(ORM)工具,极大...
2. 子查询:可以在WHERE或HAVING子句中嵌套HQL查询,如“SELECT u FROM User u WHERE u.id IN (SELECT f.userId FROM Friend f WHERE f.friendId=100)”。 3. 动态HQL:通过Criteria API或Query接口,可以构建动态...
### HQL查询及语法详解 #### 一、HQL简介 HQL,全称为Hibernate Query Language,是Hibernate框架提供的一种面向对象的查询语言。它基于SQL标准,但更加强调对象模型,支持Java中的对象关系映射(ORM),能够处理...
- `from DomesticCat cat where cat.name in ('Foo', 'Bar', 'Baz')` 查找名字为"Foo", "Bar"或"Baz"的DomesticCat实例。 7. **比较运算符和逻辑运算符**:如`=`, `, `>`, `, `>=`, `!=`, `like`, `not`, `and`, `...
String hql = "from User user where user.age in (20, 30)"; // 查询姓名为空的用户 String hql = "from User user where user.name is null"; // 查询姓名包含'zx'的用户 String hql = "from User user where user...