关于删除商品详情图的问题
来源:8-8 商品编辑之后端开发下
龙晓秀
2020-04-10
老师您好,更新商品信息的代码逻辑先对原先存入的商品详情图进行删除再添加新的图片,最后执行更新商品信息操作:
// 如果有新存入的商品详情图,则将原先的删除,并添加新的图片
if (productImgHolderList != null && productImgHolderList.size() > 0) {
deleteProductImgList(product.getProductId());
addProductImgList(product, productImgHolderList);
}
try {
// 更新商品信息
int effectedNum = productDao.updateProduct(product);
if (effectedNum <= 0) {
throw new ProductOperationException(“更新商品信息失败”);
}
return new ProductExecution(ProductStateEnum.SUCCESS, product);
} catch (Exception e) {
throw new ProductOperationException(“更新商品信息失败:” + e.toString());
}
那万一更新商品失败了 事务回滚了 那详情图删除了啊 >.<
1回答
-
同学好,确实会存在这样的问题,由于事务只是对数据库的控制,所以如果想更完善的话,还需要捕获异常,并对文件进行处理,这里可以先考虑将原来的图片文件移动到另外一个目录而不是直接删除,这样出问题后,还能在catch里面,把图片给移动回来:)
012020-04-12
相似问题