2009-05-01 15 views
0

私はコースオブジェクトを持っています。コースオブジェクトには一連のチュートリアルと一連のアプリケーションがあります。 私はコースオブジェクトを削除するとき、私は関連付けられたチュートリアルとアプリケーションのセットを削除したい。 休止状態の削除

を次のように私のcourse.hbmであり、私のapplication.hbmは

<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> 
が含まれています

答えて

0

チュートリアルやアプリケーションにまでカスケード接続し、それらが孤立している場合だけでなく、それらを削除しますカスケード=「削除 - 孤児、すべての」および削除操作を設定します(他のコースに接続されていません)。

私たちはhibernateアノテーションを使用していますので、追加する正確なxmlはわかりませんが、ドキュメントからは、それらのコレクション定義のそれぞれにcascade = "all-delete-orphan"があるはずです。

+0

reply.Butのおかげでこのプロパティを設定しようとしましたが、削除しようとしましたが、チュートリアルやアプリケーションが削除されていません。 私はinversをアプリケーションでマップしていません。 coure.hbmやtutotials.hbm、application.hbmにこのプロパティを設定する必要がありますか? – user93796

+0

ねえ、ここに私のapplication.hbmを掲載しました。 – user93796

0

これは、休止状態で実行することは可能ですが、正しい方法(データベースの整合性を常に保つ)は、データベースレベルでCASCADE ON DELETE制約を使用することです。詳細については、データベースのドキュメントを確認してください

+0

DBレベルではなく、休止状態にしたい – user93796