我有一个用户-一个频道关系(@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
频道有一个头像,它存储在本地驱动器上,数据库存储照片的路径。在删除频道时,从本地驱动器删除文件的最佳位置是哪里以及如何?在外观中,如果数据库包含实体且文件夹与之对应,以及如果文件夹存在但实体不存在,则每天维护或检查一次,然后将其删除?
此刻,我删除只是与entityManager,但它不会从本地驱动器删除照片repository.deleteById(id);
我很抱歉,如果我没有正确地表达这个问题,我只是没有很有经验,在它和我试图描述的问题尽可能详细。
1条答案
按热度按时间vyswwuz21#
您可以在服务层上执行此操作,但请考虑以下几点:
@Transactional
。这样,如果发生意外,数据库操作将回滚,您可以稍后重试。提到的另一个解决方案,在应用程序中安排一个作业,定期检查文件夹中的照片,并删除任何未使用的照片,听起来也不错,但在这种情况下,请仔细考虑以下几点