SomeFileModel
ディスクに保存されているファイルへの参照を含むモデルがあります。そのファイルをエンティティと一緒に保存し、両方を一度に削除したいと思います。前者は難しくありませんが、後者には問題があります。SomeFileModel
別のモデルFilesCollectionModel
と多対 1 の関係にあり、注釈が付けられていorphanRemoval = true
ます。
責任のあるサービスSomeFileModel
がそのファイルを削除する間、エンティティの破棄を注文すると、他のサービスは(予想どおり)それを行いません。もちろん、すべてのモデルにprepareDeleteion()
カスケードによって呼び出される何らかのメソッドを持たせることはできますが、それが最善の方法だとは思いません。
私の質問は次のとおりです。エンティティの削除時に呼び出されるように、メソッドをマークする注釈またはその他の規則はありますか? それは可能ですか?または、データベース内の参照なしでファイルを削除する「孤立ファイルコレクター」や、醜いカスケードメソッド呼び出しなど、他のソリューションを使用する必要がありますか? どのようなアプローチが最適でしょうか?
それが役立つ場合は、Hibernate 4 と Spring Framework 3.1.0 を使用します。