3

ファイルシステムに保存されている画像を参照する画像エンティティ(Spring Roo / JPA)があります。Imageエンティティが永続ストアから削除されたら、これらのファイルを削除したいと思います。

各Imageエンティティに手動のremove()メソッドをコーディングして、それ自体とその参照ファイルを削除することもできますが、それは、そのメソッドを使用して画像を手動で削除した場合にのみ機能します。所有しているエンティティが削除されたときに画像がカスケード削除された場合、または画像を呼び出しentityManager.remove()て削除された場合は、明らかに起動しません。

エンティティがデータベースから削除されるときに呼び出されるメソッドまたはイベントはありますか?

4

1 に答える 1

3

はいあります。一般に、これらのメソッドはライフサイクルコールバックメソッドと呼ばれます。あなたの場合、postremoveコールバックメソッドが必要です。これは、別のクラス(@EntityListenersアノテーションを介して参照)に配置することも、エンティティに直接配置することもできます。

@PostRemove
protected void postRemoveOperations() {
    //remove images here
} 

または、詳細によっては、@PreRemoveの方が便利な場合があります。

于 2012-04-25T17:54:21.717 に答える