我的模型SomeFileModel
包含对存储在磁盘上的文件的引用。我想将该文件与一个实体一起保存并同时删除它们。虽然前者并不难,但问题来自后者:SomeFileModel
与另一个模型多对一关系,FilesCollectionModel
并用orphanRemoval = true
.
虽然负责SomeFileModel
删除该文件的服务,但当我们下令销毁实体时,其他服务(正如预期的那样)不会这样做。当然,我可以让所有模型都有一些prepareDeleteion()
方法,可以通过级联调用,但我认为这不是最好的方法。
我的问题是:是否有一些注释或其他约定可以标记方法,以便在实体删除时调用?它甚至可能吗?或者我应该使用其他一些解决方案,例如“孤立文件收集器”,它会删除数据库中没有引用的文件,或者那个丑陋的级联方法调用?什么方法是最好的?
如果有帮助,我会使用 Hibernate 4 和 Spring Framework 3.1.0。