Hallo!
Ich habe ein Problem in mit meiner Java-Anwendung.
Zunächst ein kleiner Überblick:
Ich habe eine Klasse "ChangeRequest". Dieser hat jeweils einen Status (wiederum eine Klasse).
Ein User kann eine oder mehrere Rollen haben (n:m) und jede Rolle darf eine oder mehrere Aktionen (mit den ChangeRequests) ausführen (n:m). Jede Aktion kann aber wiederum nur ausgeführt werden, wenn der betreffende ChangeRequest einen bestimmten Status hat.
User <- 1:n -> User_Rolle <- n:1 -> Rolle
Rolle <- 1:n -> Rolle_Aktion <- n:1 -> Aktion
Aktion hat ein Attribut Voraussetzung (Set), das wiederum auf die Klasse Status zurückgreift, sowie ein 2. Attribut Nachfolger (Set) der selben Klasse. Das Hibernate Mapping ist folgendes:
Code:
<set name="Voraussetzung" table="CR_AKTION_STATUS" >
<key column="AKTION_ID"/>
<many-to-many column="VORAUSSETZUNG" class="CrStatus" />
</set>
<set name="Nachfolger" table="CR_AKTION_STATUS" >
<key column="AKTION_ID"/>
<many-to-many column="NACHFOLGER" class="CrStatus" />
</set>
ChangeRequest <- n:1 -> Status
Status <- n:m -> Aktion(Voraussetzung)
Status <- n:m -> Aktion(Nachfolger)
Lege ich nun manuell ein Objekt des Typs "Aktion" an, dann kann ich mir ohne Probleme alle Voraussetzungen ausgeben lassen.
Gehe ich eine Stufe höher und lege ein Objekt "Rolle" an, dann bekomme ich alle möglichen Aktionen samt Voraussetzungen.
Eine weitere Stufe höher bekomme ich aber nun ein Problem:
Ein Objekt des Typs "User" hat zwar Rollen und diese haben auch die entsprechenden Aktionen, aber beim Versuch die passenden Voraussetzungen ausgeben zu lassen, ist das entgegen genommene Set leer.
Da das Mapping bei Rollen und Aktionen soweit funktioniert, stellt sich mir die Frage, wo das Problem bei den Usern liegt.
Irgendjemand eine Idee? Gibt es Beschränkungen bezüglich der Kaskadierung von Hibernate Klassen? Kann ich mir eigentlich nicht vorstellen...
Danke schon im Voraus!
Hibernate version: http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd"
Name and version of the database you are using: Oracle 9