java - JPA/Spring Roo : is there a destructor event called when an entity is removed from the persistent store?

标签 java spring hibernate jpa spring-roo

我有一个图像实体 (Spring Roo/JPA),它引用存储在文件系统上的图像。当图像实体从持久存储中删除时,我很乐意删除这些文件。

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

当从数据库中删除实体时,是否会调用任何类型的方法或事件?

最佳答案

是的。通常,这些方法称为 lifecycle callback methods .在您的情况下,您需要删除后回调方法。这可以位于单独的类(然后通过 @EntityListeners 注释引用),或直接位于您的实体:

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

或视详情而定,@PreRemove可以更有用。

关于java - JPA/Spring Roo : is there a destructor event called when an entity is removed from the persistent store?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10320664/

相关文章:

java - 集合框架中的接口(interface)

java - TibjmsConnectionFactory 的 connAttemptCount 和 reconnAttemptCount 有什么区别?

java - 使用 JSONArray.fromObject 将 Hibernate 实体转换为 json

java - 定义数据源

java - ManyToOne 可选关系上的 JPA Criteria API

java - Eclipse 符合 "Unresolved generator name"但一切正常

java - Android:具有现有布局的自定义 View 的多个 View 子项

java - 如何读取并显示一开始默认设置的用户等级

java - Spring 安全 : Ignoring alias of server-name and forcing relogin

java - 找不到类型 : java. lang.Long 的 validator 。带帖子ID