查询语句可以返回值为任何类型的属性或对象,包括返回类型为某种组件(Component)的属性:
select cust.name.firstName
from Customer as cust
select cat.mate
from Cat cat
查询语句可以返回多个对象和(或)属性,存放在
Object[]
队列中:
select mother
, offspr
, mate.name
from DomesticCat as mother
inner join mother.mate as mate
left join mother.kittens as offspr
或存放在一个List
对象中:
select new list
(mother, offspr, mate.name)
from DomesticCat as mother
inner join mother.mate as mate
left outer join mother.kittens as offspr
也可能直接返回一个实际的类型安全的Java对象(假设类Family
有一个合适的构造函数
):
select new Family(
mother, mate, offspr)
from DomesticCat as mother
join mother.mate as mate
left join mother.kittens as offspr
也可以使用关键字as
给“被选择了的表达式”指派别名:
select max(bodyWeight) as max
, min(bodyWeight) as min
, count(*) as n
from Cat cat
这种做法在与子句select new map
一起使用时最有用:
select new map(
max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat
分享到:
相关推荐
HQL的SELECT子句** 在HQL中,SELECT不仅可以选择对象,还可以选择对象的属性,甚至可以进行复杂的计算或函数调用。比如: ```sql SELECT s.name, AVG(s.age) FROM Student s GROUP BY s.name ``` 这个查询会按...
* select 子句:选择将对象的属性返回到查询结果集中。 * where 子句:允许你将返回的对象的实例列表的范围缩小。 HQL 的应用示例: * 使用 HQL 检索对象:User user = (User) session.createQuery("from User ...
6. **SELECT子句**:HQL的SELECT子句用于指定查询结果中包含的对象或属性。例如,“SELECT mate FROM Cat”将返回Cat实体的mate属性的值。 7. **ORDER BY与WHERE子句**:这些子句的功能与SQL类似,用于对查询结果...
HQL也支持`WHERE`子句进行条件过滤,例如: ```java String hql = "from User user where user.age = 20"; List<User> list = session.createQuery(hql).list(); ``` 除了简单的等于条件,还可以使用更复杂的逻辑...
1. SELECT子句:HQL支持多种选择项,包括属性、方法、计算表达式等,如“SELECT u.name FROM User u”。 2. FROM子句:指定查询的实体类,如“FROM User”。 3. WHERE子句:设置查询条件,支持逻辑运算符(AND、OR...
hql: "select (select max(e.pay) from a.employee e where e.name=:name) from company a"; ``` 三、coalesce函数 `coalesce`函数在HQL中用于返回第一个非空表达式。如果所有参数都为空,它将返回NULL。语法如下:...
在Java环境中,HQL的SELECT子句类似于SQL中的SELECT,但更侧重于面向对象的特性。例如: ```sql SELECT new org.hibernate.eg.FOO(foo.bar, foo.BARSET) FROM org.hibernate.eg.Foo AS foo ``` 这里,`SELECT`子句...
from 子句返回指定的类的所有实例,而 select 子句可以选择对象的某些属性。 例如,from Order 将返回 Order 类的所有实例,而 select product from Order as o inner join o.products as product 将返回 Order 中...
HQL查询的基本结构包括关键字如`SELECT`、`FROM`、`WHERE`、`GROUP BY`、`HAVING`、`ORDER BY`等,这些关键字的使用与SQL非常相似,但是HQL还支持面向对象的特性,如属性路径表达式。 ##### 实体的更新与删除 在...
select子句 `select`子句用于指定返回结果集的字段或属性。HQL支持多种选择方式,包括: - `select p.name from Person as p`:选择`Person`实体的`name`属性。 - `select new list(p.name, p.address) from ...
#### 七、SELECT 子句 - **选择特定字段**: ```sql SELECT mate FROM com.example.Cat AS cat INNER JOIN cat.mate AS mate; ``` 以上查询将返回所有 Cat 实例的 mate 属性。 - **组件选择**: ```sql ...
### HQL查询语句详解 #### 一、HQL简介 Hibernate Query Language(HQL)是一种面向对象的查询语言,其语法与SQL相似但并非完全相同。HQL的设计旨在更好地支持面向对象编程特性,比如继承、多态以及关联等概念。...
select子句允许我们选择需要查询的具体属性。例如,`select s.name from Student s`将返回`Student`对象的`name`属性。查询结果通常存储在列表中,可以通过循环遍历并访问每个属性。如果需要查询多个属性,结果将以...
SELECT子句用于选择查询结果中包含的字段或属性。HQL支持多种选择方式: - `select p.name from Person as p`:选择Person实体的所有name属性。 - `select p.name.firstName from Person as p`:选择Person实体中...
`SELECT` 子句用于指定要返回的数据列。在HQL中,可以使用以下几种方式来指定返回列: - 返回整个对象:`SELECT p FROM Person AS p` - 返回特定属性:`SELECT p.name FROM Person AS p` - 返回嵌套属性:`SELECT p...
String hql = "select s.sdept, count(s) from Student s group by s.sdept order by s.sdept"; List[]> departmentCounts = session.createQuery(hql).list(); ``` 这里,`group by`语句用于按系别分组,`count(s)...
1. **from 子句**:这是HQL查询的起点,用于指定要查询的持久化类。例如,`from Person as p`表示从`Person`类中选择所有实例。`as p`是别名,方便后续引用。 2. **select 子句**:用于定义查询结果的内容。可以是...
Hibernate 查询语言(HQL)语法...HQL 还支持其他子句,例如 where、order by、group by 等,可以用于对查询结果进行过滤、排序和分组等操作。 HQL 是一种强大的查询语言,它可以帮助我们快速、高效地检索和操作数据。
select子句 - `select`子句用于指定查询结果中包含的字段或属性。 - **示例**:`select p.name from Person as p` - 该语句表示只查询`Person`表中的名字属性。 ##### 3. 聚合函数 - HQL支持SQL中的聚合函数,如...