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

前端之家收集整理的这篇文章主要介绍了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可能更有用.

猜你在找的Spring相关文章