One nice feature of EJB QL is the ability to create new Type safe instances of an Object simply using the new construct. Here is an example:
select new Family(mother, mate, offspr)
from DomesticCat as mother
join mother.mate as mate
left join mother.kittens as offspr
Here we are returning an Object type of Family provided that we have a Constructor Family(mother, mate, offspr) in the class.
This option is useful to create View of Object structures, similarly like RDBMS create view of tables