Hibernate: Abfrage über 2 Tabellen

Status
Nicht offen für weitere Antworten.

pusteblume

Mitglied
Hallöle,

ich habe drei tabellen:

tabelle1, tabelle2 und zwischentabelle. tabelle1 und 2 haben jeweils eine id-spalte, die als pk deklariert ist. die zwischentabelle besteht aus diesen beiden pks:

pk von tabelle1 = id_table1
pk von tabelle2 = id_table2

zwischentabelle = fks: id_1 und id_2


jetzt wollte ich eine abfrage machen à la:

Code:
select id_1 from zwischentabelle where id_2 = 'xxx';
da schimpft hibernate, dass meine zwischentabelle keinen primary-key hat. seh ich ja ein. 😉 also wollte ich meine abfrage so gestalten:

Code:
select tabelle1.id_table1 from tabelle1 where Zwischentabelle.id_2 = xxx;

habe es auch so probiert:

Code:
select t1.id_table1 from Tabelle1 as t1, Zwischentabelle as zt where zt.id_2 = xxx;

bekomme dann aber diese fehlermeldung:

javax.servlet.ServletException: org.hibernate.QueryException: could not resolve property: id_2 of: path.to.package.beans.Zwischentabelle[select t1.id_table1 from path.to.package.beans.Zwischentabelle as zt, path.to.package.beans.Tabelle1 as t1 where zt.id_2= 'xxx']

???:L

über tipps würde ich mich sehr freuen! danke und gruß!
pusteblume
 
In der Klasse Zwischentabelle fehlt wohl die Variable id_2 (+getter/setter).

Warum hat die Tabelle Zwischentabelle eigentlich keinen Primärschlüssel? Wenn die Zwischentabelle eine m:n-Beziehung zwischen den beiden anderen Tabellen abbildet, sollten beide Ids Primärschlüssel sein.
 
mit der abfrage

Code:
from path.to.package.tabelle1 as t1, Zwischentabelle where id_2= :xxx and id_1= t1.id_table1

erhalte ich das folgende sql:

Code:
select 
table1.id_table1 as lid0_0_, 
zwischentabelle.id_2 as ftid1_1_, 
zwischentabelle.id_1 as flid1_1_, 

from 
tabelle1 table1_, 
zwischentabelle zwischentabelle_ 

where 
id_2=? and id_1=tabelle1.id_tabelle1

und diese Fehlermeldung:


org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of package.to.path.Zwischentabelle.zwischentabelleid

Ich verstehe nicht, wo hier jetzt genau der Fehler liegt. Kann mir das jemand erklären? Bitte! :bahnhof: In der Zwischentabelle gibt es keine richtige id-spalte nur die foreign keys aus tabelle1 und tabelle2.

Vielen Dank,
pusteblume
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben