Probleme bei Left Joins mit Hibernate createCriterias()

der_guenn

Mitglied
Hallo,

ich habe ein Probleme mit der Methode Session.createCriteria.

Ich würde gerne folgende SQL-Anweisung mit Hilfe Criterias umsetzen.

SQL:
select * from EMPLOYEE AS EMP

left join ADRESS AS ADR ON EMP.ADRESS_ID = ADR.ID_ADRESS
left join HOBBIES AS HOB ON EMP.HOBBIES_ID = HOB.ID_HOBBIES

WHERE
HOB.HOBBIES = 'Skating' AND ADR.TOWN = 'Berlin'

Was ich momentan versucht hatte war folgendes:
Java:
Criteria criteria = session.createCriteria(entryEmployee.getClass());
Criteria criteria2 = criteria.createCriteria("adress");
Criteria criteria3 = criteria2.createCriteria("hobbies");
Criteria criteria4 = criteria3.add(Restrictions.eq("nameHobbies","Skating")).add(Restrictions.eq("nameTown","Berlin"))
leider verlingt er nicht hobbies mit employee sondern hobbies mit adress. Wie müsste es denn richtig aussehen?
 

der_guenn

Mitglied
Ok hat sich erledigt, gerade die Lösung gefunden. Das Ganze müsste wie folgt aussehen:
Java:
Criteria criteria = session.createCriteria(entryEmployee.getClass(),"emp");
Criteria criteria2 = criteria.createCriteria("emp.adress", "adr");
Criteria criteria3 = criteria2.createCriteria("emp.hobbies","hob");
Criteria criteria4 = criteria3.add(Restrictions.eq("hob.nameHobbies","Skating")).add(Restrictions.eq("adr.nameTown","Berlin"))
[/Java]

Also mit Alias arbeiten....
 
N

nillehammer

Gast
Ich würde für solge Abfragen eher JPQL-Queries benutzen. Criteria-API ist besser für Abfragen mit optionalen Parametern.
 

Ähnliche Java Themen

Neue Themen


Oben