1対多の関係をカスケードすることに問題があります。私のテーブルの1つにコンポーネントが含まれており、コンポーネントは私のギャラリーである別のテーブルにリンクされています(ギャラリーは他のテーブルと多くの種類の関係を持っています)。次に、コンポーネントは私の基本クラスの 1 つで使用されます。エンティティ開発者を使用してコードを生成し、次の行でそれを行いました: Baseinfo.hbm.xml
...
<component>
...
<many-to-one name="LocationMap" class="..." cascade="all">
<column name="ImageId" not-null="true"/>
</many-to-one>
</component>
....
何度か null に設定する必要があったので、not-null を「false」に変更します。レコードの削除に遭遇するまで、すべてがうまくいきました。LocationMap を null に設定した後、データベースを確認したところ、画像レコードがまだ存在していることがわかりました。いくつかのフォーラムの後、カスケード オプションに「delete-orphan」も追加しました。man: cascade="all,delete-orphan" でも機能しませんでした。アプリケーションをデバッグ モードにし、コードの保存を実行した後、試してみましたこれは、即時ウィンドウで: session.Flush(); それはうまくいきませんでした... 私は醜いコーディングをしたくありません、そして後でコードでレコードを削除することを忘れないでください。