如何在Hibernate中覆盖删除?

时间:2012-09-27 08:30:42

标签: java hibernate jpa

我将图像存储在外部文件中,同时在数据库记录中仅保留它们的路径。但是如果删除了适当的记录,我想删除一个文件。

如何通过删除文件扩展删除操作?

2 个答案:

答案 0 :(得分:0)

存在多个问题:

  • 如果文件无法删除怎么办?是否应删除数据库条目?
  • 如果交易失败怎么办?
  • 如果文件已被删除怎么办?

你不能把字节数据保存在数据库本身吗?

答案 1 :(得分:0)

您可以使用休眠拦截器。

通常,您必须以类似的形式扩展EmptyInterceptor和overwrite方法

public void onDelete(Object entity, Serializable id, 
    Object[] state, String[] propertyNames, 
    Type[] types) {

    System.out.println("onDelete");

    if (conditionOnFileDeletionIsMet()){
        deleteFile();
    }
}

更详细的示例包括herehere。文档为here