微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java-JPA / Spring Roo:当从持久性存储中删除实体时,是否有一个析构函数事件被调用?

我有一个Image实体(Spring Roo / JPA),它引用存储在文件系统中的图像.从持久性存储中删除Image实体时,我希望删除那些文件.

我可以在每个Image实体上编写一个手动的remove()方法,使它删除自身及其引用的文件,但是只有在使用该方法手动删除图像时,该方法才有效.当删除拥有的实体时,或者通过调用其上的entityManager.remove()来删除图像时,显然不会触发图像.

数据库删除实体时,是否有任何类型的方法或事件被调用

最佳答案
在这里.通常,这些方法称为lifecycle callback methods.您需要使用post remove回调方法.可以将其定位到单独的类(然后通过@EntityListeners批注进行引用),或直接定位到您的实体:

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

或根据细节,@PreRemove可能更有用.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐