2016-12-19 3 views
0

Derzeit haben 2 sehr grundlegende Klassen, eine ist in der anderen verschachtelt.HQL - Zurückgeben einer Liste von komplexen Objekten

Klasse Job:

public Class Job { 
    private String name; 
    private int salary; 
    ... // Basic Constructors + Getters/Setters 
} 

Klasse Firma:

public Class Company { 
    private String name; 
    private Collection<Job> jobs; 
    ... // Basic Constructors + Getters/Setters 
} 

Sie es wahrscheinlich erraten, versuchen, eine Abfrage zu machen, die eine Liste der Unternehmen zurück, die jeweils ihre Sammlung von Jobs enthalten.

Die Abfrage:

select COMPANY_NAME, JOB_NAME, count(*) FROM COMPANY_REPORT cr, JOB_DECLARATIONS jd 
where cr.COMPANY_NAME = jd.COMPANY_NAME 
group by cr.COMPANY_NAME , cr.JOB_NAME 
order by cr.COMPANY_NAME , cr.JOB_NAME 

Wird so etwas wie dies zurück:

Company Name | Job Name | Count 
-------------------------------- 
Soni   Assistant 3 
Soni   Manager  1 
Zoom   Potographer 5 

Aber ich kann nicht scheinen, um die HQL-Syntax für sie zu verstehen.

Select new com.stuff.Company(cr.COMPANY_NAME, ...how to add collection??) FROM ... 

Antwort

0
Select c.name, j.name, count(*) from company c, job j where c.name=:name group by c.name, c.jobs 
Order by c.name,c.jobs 

Fund setparameterList here

Verwandte Themen