【特辑·黑马课堂报错之旅】瑞吉外卖的菜品不能删除?当前分类下关联了菜品,不能删除!

时至如今,我已无F~~K可说 …
作为一个刚入门编程一年不到的小菜鸟,凌晨2:00,还在苦苦的躺在床上修改Bug。。

咳咳,进入正题

故事背景(废话)

一个小时前我正美滋滋的看着黑马程序员之Java项目实战《瑞吉外卖》的P46 业务开发Day3-08-删除分类_功能完善。整堂课共23分11秒,在前20分钟前,那像是吃了德芙一般的丝滑感,让我沉浸其中,欲罢不能。正当我畅快淋漓地敲完代码,准备跟着赵老师进行测试的时候……
是的,不出意外的话这里要出意外了。
突然!!删除失败……ERROR……红色……当前分类下关联了菜品,不能删除……(相信体会过的就懂,肯定懂,百分百的懂!)
简单来说呢,就是报错了,出Bug了,晚上的愉快时光已经毁灭了。。
而赵老师那边,可顺畅了说出那句:“你看,删除成功了吧!”。

……作为一个菜鸟已经想自杀了,满脑子的想:啊…我又是哪里没好好跟着敲对了;啊…我又是哪里粗心了;啊?啊?啊?啊?啊?啊?啊?啊?x10000000次

咳咳,进入真正的正题(解决问题环节)

问题分析

  1. 前端请求与后端对不上号
    如果前期有仔细跟着赵老师通过网页的开发者工具仔细查看功能的请求URL及负载的时候,想必就会发现:在进行删除菜品或套餐时,所发回来的请求是这样的
    在这里插入图片描述
    在这里插入图片描述
    没错,前端所传回来的是ids,并不是id。而你对照你所写的后端代码就会发现,你全是用id所接收的!!

  2. 调用count()方法时,并没有传入对应的LambdaQueryWrapper
    仔细的小伙伴(或者像我一样大冤种找bug找了一小时的人)应该会发现,在CategoryServiceImpl类中的如下代码中,count()方法内并未传入与之对应的LambdaQueryWrapper
    在这里插入图片描述
    而在int count1所调用的count()方法中是有传入相对应的dishLambdaQueryWrapper
    在这里插入图片描述
    这就直接导致了,其所调用的方法所赋予count2的值必定大于0。(debugger一下就好了)

那么,解决方案来了

按如上问题分析,我们第一步仅需:
找到该功能的前端接口(在backend/api/category.js中),将deleCategory方法中的ids,均改为id
在这里插入图片描述
该作用是将前端其请求URL及负载改为id,使其与你的后端代码可以对应上,而不是ids。

第二步是:
CategoryServiceImpl.java类中,将
int count2 = setmealService.count();count()中添入setmealLambdaQueryWrapper;
在这里插入图片描述

以上是针对于大部分出现该问题的解决办法,修bug一个小时,写文章一个小时,草草收尾下~能帮到你们就最好。晚安!

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值