老师您好 请问为什么要将此类别下商品的类别id置为空啊

来源:7-5 商品类别删除后端开发

慕圣6143811

2019-07-25

图片描述

图片描述

老师 这里没太理解 删除不是把数据库的表中一整条都删掉了吗? 为什么要先将id清空呢???

写回答

1回答

翔仔

2019-07-25

同学好,

@Transactional
	public ProductCategoryExecution deleteProductCategory(long productCategoryId, long shopId)
			throws ProductCategoryOperationException {
		// 解除tb_product里的商品与该producategoryId的关联
		try {
			int effectedNum = productDao.updateProductCategoryToNull(productCategoryId);
			if (effectedNum < 0) {
				throw new ProductCategoryOperationException("商品类别更新失败");
			}
		} catch (Exception e) {
			throw new ProductCategoryOperationException("deleteProductCategory error: " + e.getMessage());
		}
		// 删除该productCategory
		try {
			int effectedNum = productCategoryDao.deleteProductCategory(productCategoryId, shopId);
			if (effectedNum <= 0) {
				throw new ProductCategoryOperationException("商品类别删除失败");
			} else {
				return new ProductCategoryExecution(ProductCategoryStateEnum.SUCCESS);
			}
		} catch (Exception e) {
			throw new ProductCategoryOperationException("deleteProductCategory error:" + e.getMessage());
		}
	}

咱们首先将跟该商品类关联的商品的类别id置为空,然后再删除productCategory,这样做是为了避免删除的时候违反外键约束,同学可以在tb_product还引用该productCategory的情况删除该productCategory试试

0
0

Java双版本(SSM到SpringBoot)校园商铺全栈开发

SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需

5113 学习 · 8144 问题

查看课程