使用 itemsCommentsMapper 无法插入评论

使用 itemsCommentsMapper 无法插入评论

老师,你在视频中使用的是自定义的 Mapper(itemsCommentsMapperCustom)。我直接使用的原生 itemsCommentsMapper 批量插入评论,但是报错了,我查看了报错信息,发现插入评论的过程中主键 id 被过滤掉了,我debug了不知道什么原因,辛苦老师解答

插入评论的代码截图:

图片描述

错误信息相关截图:

图片描述

报错信息重点:

SQL: INSERT INTO items_comments ( user_id,item_id,item_name,item_spec_id,sepc_name,comment_level,content,created_time,updated_time ) VALUES ( ?,?,?,?,?,?,?,?,? ) , ( ?,?,?,?,?,?,?,?,? )

sql 执行过程居然将 id 给过滤掉了,不知道什么原因导致的?

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

点进insertList看源码注释就能明白的呀https://img1.sycdn.imooc.com//climg/63da778709e3e20a11590739.jpg

  • SuperDi 提问者 #1

    太感谢了!!完美解决了我的问题,源码这块点来点去没点进去,惭愧。

    2023-02-10 22:45:51
风间影月 2022-12-05 22:55:21

id消失推测你的映射可能不对了,映射到数据库,dto不对导致数据库识别不了。信息量不多啊,代码又不同。。不能准确定位到具体问题,只能逐步去排查了

  • 提问者 SuperDi #1

    id映射是对的,我把批量插入改成了逐条插入是正常的,为什么批量插入会出现主键id消失的情况??


    https://img1.sycdn.imooc.com//climg/638e0b2d09ee410100000000.jpg

    2022-12-06 10:24:29
  • 提问者 SuperDi #2

    老师,辛苦解答下这个问题,网上查了资料,不明白是什么原因导致的

    2022-12-08 10:33:52
风间影月 2022-12-05 22:39:47

是啊,id是string的话不能自增啊,得设置为increment类型的自增,根据数据生成多个id再组装插入试试

  • 提问者 SuperDi #1

    老师,你没仔细看我的问题,我没有说 id 自增的问题,id是string不能自增我明白。


    我的问题是我插入评论记录的时候明明设置了主键 id,但是在批量插入过程中报错了,输出的 insert 语句将我设置的主键 id 值给忽略掉了,是什么原因导致的

    2022-12-05 22:43:56
风间影月 2022-12-05 22:27:47

你的id可能漏传了,id是必传项

  • 提问者 SuperDi #1

    老师你可以仔细看下我的问题,描述的比较情况,我确认 id 没有漏传,而且我 debug 到源码部分了,如下

    Object (SqlSession sqlSessionObject[] args) {
        Object resultObject param(..getType()) {
        :
            param = ..convertArgsToSqlCommandParam(args)result = .rowCountResult(sqlSession.insert(..getName()param))

    到这的 param 都是包含 id 的,我也百度了,网上有些文章说 

    tk.mybatis公共的批量插入@Id被忽略。非自增id不能批量插入


    不知道是不是这个原因

    2022-12-05 22:36:45
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师