2009-05-01 15 views
0

Ich habe ein Kursobjekt. Das Kursobjekt verfügt über eine Reihe von Lernprogrammen und eine Reihe von Anwendungen. Wenn ich Kursobjekte lösche, möchte ich, dass die zugehörigen Lernprogramme und Anwendungen gelöscht werden. Mein course.hbm ist wie folgtRuhezustand löschen

und meine application.hbm enthält

<property name="appdatetime" type="timestamp"> 
     <column name="appdatetime" length="19" /> 
    </property> 
    <property name="appstatus" type="java.lang.Integer"> 
     <column name="appstatus" /> 
    </property> 
    <property name="apptype" type="java.lang.Integer"> 
     <column name="apptype" /> 
    </property> 

    <many-to-one name="course" column="cid"/> 
    <many-to-one name="employee" column="empid" /> 
</class> 

Antwort

0

die Kaskade = „delete-Waise, alle“ Set und den Löschvorgang wird auf die Übungen und Anwendungen kaskadieren und sie auch löschen, wenn sie verwaist sind (nicht zu jedem anderen Kurs verbunden).

Wir verwenden Hibernate-Annotationen, daher bin ich nicht wirklich sicher, das genaue xml hinzuzufügen, aber aus den Dokumenten sieht es aus wie cascade = "all-delete-orphan" sollte für jede dieser Auflistungsdefinitionen sein.

+0

danke für die Antwort.Aber ich habe versucht, diese Eigenschaften in course.hbm und versuchte zu löschen, aber Tutorials und Anwendungen werden nicht gelöscht gelöscht. nicht, dass ich inverters in Anwendung mappen. Ich muss diese Eigenschaften in coure.hbm oder tutotials.hbm und application.hbm festlegen? – user93796

+0

hey ich habe meine application.hbm hier gepostet einfach mal gucken. – user93796

0

Während dies möglicherweise im Ruhezustand möglich ist, besteht der richtige Weg (der die Integrität der Datenbank zu jeder Zeit gewährleistet) in der Verwendung von CASCADE ON DELETE-Einschränkungen auf Datenbankebene. Überprüfen Sie Ihre Datenbank-Dokumentation für Details

+0

Ich möchte es mit Ruhezustand und nicht auf DB-Ebene – user93796