http://www.hibernate.org/hib_docs/reference/zh-cn/html/queryhql.html#queryhql-select
查詢可以返回任何值類(lèi)型的函數(shù),
select子句選擇在結(jié)果集中返回哪些對(duì)象和屬性。思考一下下面的例子:
select mate
from eg.Cat as cat
inner join cat.mate as mate
這個(gè)查詢會(huì)選擇出作為其它貓(Cat)朋友(mate)的那些貓。當(dāng)然,你可以更加直接的寫(xiě)成下面的形式:
select cat.mate from eg.Cat cat
你甚至可以選擇集合元素,使用特殊的elements功能。下面的查詢返回所有貓的小貓。
select elements(cat.kittens) from eg.Cat cat
查詢可以返回任何值類(lèi)型的屬性,包括組件類(lèi)型的屬性:
select cat.name from eg.DomesticCat cat
where cat.name like 'fri%'
select cust.name.firstName from Customer as cust
查詢可以用元素類(lèi)型是Object[]的一個(gè)數(shù)組返回多個(gè)對(duì)象和/或多個(gè)屬性。
select mother, offspr, mate.name
from eg.DomesticCat as mother
inner join mother.mate as mate
left outer join mother.kittens as offspr
或者實(shí)際上是類(lèi)型安全的Java對(duì)象
select new Family(mother, mate, offspr)
from eg.DomesticCat as mother
join mother.mate as mate
left join mother.kittens as offspr
上面的代碼假定Family有一個(gè)合適的構(gòu)造函數(shù)。