Ich habe ein Hibernate-Mapping und nur eine Spalte daraus soll per Join aus einer anderen Tabelle (nur lesend, muss nicht schreiben können) geholt werden. Der Unterschied zu 90% der Beispiele aus dem Netz ist, dass der FK nicht in der zweiten Tabelle sitzt, sondern in der ersten. Hier mein Beispiel.
Ich habe diese beiden Tabellen:
Im Mapping soll zum Namen der Person lediglich der Ort auftauchen.
Das habe ich jetzt so gemacht (funktioniert leider nicht):
[XML]
<!-- .... -->
<property name="name" column="personName" type="java.lang.String" />
<join table="ADRESSE">
<key column="FKadresseId" />
<property name="ort" column="ort" type="java.lang.String" insert="false" update="false" />
</join>
[/XML]
Leider baut Hibernate den Join falsch rum auf. Es kommt sowas in der Art raus:
Das heißt er geht davon aus, dass der ForeignKey in der ADRESSE-Tabelle ist, statt in meiner Haupt-Tabelle (PERSON).
Hat jemand eine Idee wie ich das anders rum machen könnte? Zur Not auch mit Subselect / formula o.ä...
Ich habe diese beiden Tabellen:
Code:
PERSON
-----------------------------
personId
personName
FKadresseId
ADRESSE
-----------------------------
adresseId
ort
strasse
Im Mapping soll zum Namen der Person lediglich der Ort auftauchen.
Das habe ich jetzt so gemacht (funktioniert leider nicht):
[XML]
<!-- .... -->
<property name="name" column="personName" type="java.lang.String" />
<join table="ADRESSE">
<key column="FKadresseId" />
<property name="ort" column="ort" type="java.lang.String" insert="false" update="false" />
</join>
[/XML]
Leider baut Hibernate den Join falsch rum auf. Es kommt sowas in der Art raus:
SQL:
SELECT personName, ort
FROM PERSON
INNER JOIN ADRESSE ON PERSON.personId = ADRESSE.FKadresseId
Das heißt er geht davon aus, dass der ForeignKey in der ADRESSE-Tabelle ist, statt in meiner Haupt-Tabelle (PERSON).
Hat jemand eine Idee wie ich das anders rum machen könnte? Zur Not auch mit Subselect / formula o.ä...