关于modifyShop方法的两个疑问
来源:6-2 店铺信息编辑之Service层的实现
慕沐8221787
2020-04-13
疑问一:针对以下代码
Shop tempShop = shopDao.queryByShopId(shop.getShopId());
if (tempShop.getShopImg() != null) {
ImageUtil.deleteFileOrPath(tempShop.getShopImg());
}
上面这段代码可以修改吗?第一行删掉,另外两行修改如下,可以达到精简的效果:
if (shop.getShopImg()!=null){
ImageUtil.deleteFileOrPath(shop.getShopImg());
}
疑问二:针对以下代码
//2.更新店铺信息
shop.setLastEditTime(new Date());
int effetedNum = shopDao.updateShop(shop);
if (effetedNum <= 0) {
return new ShopExecution(ShopStateEnum.INNER_ERROR);
} else {
shop=shopDao.queryByShopId(shop.getShopId());
return new ShopExecution(ShopStateEnum.SUCCESS, shop);
}
如果出现effetedNum <= 0成立,事务将不会回退,返回一个ShopExecution对象,而此时店铺图片已换、但数据库中图片名称未修改成功,怎么办?另外,倒数第二行的代码( shop=shopDao.queryByShopId(shop.getShopId());)是不是没有必要?
1回答
-
同学好,第一个没懂,为什么要删掉?你如果不获取到原先的值,和前端的值做merge的话,原来的数据是不是可能会被覆盖掉了?
第二个,确实这部分没有完善,<0需要抛出异常才可以。倒数第二行代码,针对这里来讲,确实没必要,但是如果你要给前端返回一个完整的更新信息的话,就需要了。这里可以去掉
032020-04-14
相似问题