-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Hibernate SET Löschen
PostPosted: Sat Sep 12, 2009 11:34 am 
Newbie

Joined: Sat Sep 12, 2009 11:31 am
Posts: 1
Hallo,

ich bin in einem Projekt eingesetzt wo Hibernate eingesetzt wird. Leider habe ich da keine Plan von und nicht wirklich Zeit mich dort einzuarbeiten. Ich habe jetzt ein großes Problem, unzwar habe ich folgende XML Structur:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="com.gt.policyrepository.objects.PRRole" table="PRROLE" >
<cache usage="nonstrict-read-write" />

<id name="id" column="ID">
<generator class="sequence">
<param name="sequence">prrole_id_sequence</param>
</generator>
</id>
<property name="name" not-null="true" />
<property name="description" not-null="false" />

<many-to-one name="mandant" column="mandant_id" not-null="false"
cascade="none"/>

<set name="parentRoles" table="ROLEROLE" cascade="all">
<cache usage="nonstrict-read-write" />
<key column="child_id" not-null="true" />
<many-to-many column="parent_id"
class="com.gt.policyrepository.objects.PRRole" />
</set>

</class>

Wie ihr seht, gibt es hier eine Tabelle mit Kindern und Eltern, also das heißt eine Rolle A kann von einer Rolle B erteben und eine ROlle B kann von A erben.

<set name="parentRoles" table="ROLEROLE" cascade="all">
<cache usage="nonstrict-read-write" />
<key column="child_id" not-null="true" />
<many-to-many column="parent_id"
class="com.gt.policyrepository.objects.PRRole" />
</set>

Für die Tabelle ROLEROLE wurde keien KLasse definiert.

Jetzt will ich. wenn ich eine PRRole lösche in der Tabelle ROLEROLE voher alle verknüpfungen zu dieser Rolle gelöscht werden. Also Beispiel:

Rolle A erbt von B
Rolle C erbt von A

Dann möchte ich aRolle A löschen, dass heißt ich muss in der Tabelle ROLEROLE ja die Verbindungen löschen wo das child A ist und wo das parent object a ist.

Dies habe ich mit folgender Abfrage versucht.

Delete from PRRole.parentRoles where PRRole.parentRoles.child_id = :id or PRRole.parentRoles.parent_id = :id;

Ich bekomme die Fehlermeldung, dass parentRoles nicht gemappt ist, was ich auch verstehe weil dafür keine Klasse existiert.
Und mit Sets kenne ich mich nicht auf.

Wer könnte mir eine Abfrage bauen die mein Problem löst??

Gruß

Alaska


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.