# Modellierung von zwei Beziehungen zwischen zwei Klassen in Hibernate



## janw (26. Mai 2006)

Hallo,

ich arbeite mit Hibernate und stehe vor folgendem Problem (übertragen von der echten Anforderung auf dieses analoge Szenario):
Zu einer Person gibt es eine Menge von Ereignissen, also eine n:1-Beziehung.
Oft werden nicht alle Ereignisse einer Person benötigt, sondern nur das aktuellste. Durch diese Referenz müssen nicht immer die alle Ereignisse geladen werden.
Die Person-Tabelle hält eine Spalte "Akt_Ereignis", die die ID des jeweils aktuellsten Ereignisses einer Person hält. Diese Spalte wird durch einen Trigger aktualisiert. 

Schema:

Person
-----------------------------------------------------------
id  |  Vorname  |  Nachname  |  Geb_datum  |  Akt_Ereignis


Ereignis
-----------------------------------------------------------------------------------
id  |  Datum  |  Beschreibung  |  Pers_Vorname  |  Pers_Nachname  |  Pers_Geb_datum


Weitere Anmerkung:
Der Verweis eines Ereignisses auf die zugehörige Person ist nun nicht die ID der Person, sondern wird hergeleitet aus einer Kombination von Vornamen, Nachname und Geb.datum der Person (die drei Felder "Pers_Vorname", "Pers_Nachname", "Pers_Geb_datum" bilden einen Unique-Key auf der Person-Tabelle - dies kann ich leider auch nicht anpassen).

Ich weiß nun nicht, wie ich dies mit Hibernate umsetzen kann. Ich habe ja zwei Beziehungen zwischen den Klassen: ein Mal eine 1:1 Beziehung (Person zum aktuellsten Ereignis) und eine 1:n Beziehung (Person zu n Ereignissen).
Die 1:1-Beziehung konnte ich bisher nicht umsetzen. Ich habe einen ähnlichen Fall unter http://www.onjava.com/pub/a/onjava/2005/08/03/hibernate.html?page=4 entdeckt.

Hat da jemand eine Idee, wie ich diese beiden Beziehungen modelliert bekomme?

Gruß
Jan


----------



## janw (26. Mai 2006)

So...die 1:1 Beziehung habe ich glaubich gerade hinbekommen...

auf Person-Seite:

<many-to-one class="Ereignis" name="aktEreignis" column="akt_ereignis" unique="true"/>

auf Ereignis-Seite:

<one-to-one class="Person" name="Person" property-ref="aktEreignis"/>


ich bin aber weiterhin am Ausprobieren.


----------

