La clause select
sélectionne les objets et propriétés qui doivent être retournés dans le résultat de la requête. Soit :
select mate from Cat as cat inner join cat.mate as mate
La requête recherchera les mate
s liés aux Cat
s. Vous pouvez explimer la requête d'une manière plus compacte :
select cat.mate from Cat cat
Les requêtes peuvent retourner des propriétés de n'importe quel type, même celles de type composant (component) :
select cat.name from DomesticCat cat where cat.name like 'fri%'
select cust.name.firstName from Customer as cust
Les requêtes peuvent retourner plusieurs objets et/ou propriétés sous la forme d'un tableau du type Object[]
,
select mother, offspr, mate.name from DomesticCat as mother inner join mother.mate as mate left outer join mother.kittens as offspr
ou sous la forme d'une 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
ou sous la forme d'un objet Java typé,
select new Family(mother, mate, offspr) from DomesticCat as mother join mother.mate as mate left join mother.kittens as offspr
à condition que la classe Family
possède le constructeur approprié.
Vous pouvez assigner des alias aux expressions sélectionnées en utilisant as
:
select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n from Cat cat
C'est surtout utile lorsque c'est utilisé avec select new map
:
select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n ) from Cat cat
Cette requête retourne une Map
à partir des alias vers les valeurs sélectionnées.