查询itemstock表为空指针

来源:4-2 商品模型模型--商品创建02

qq_新_bfvBKX

2018-12-14 13:09

@Override
public ItemModel getItemById(Integer id) {
    ItemDo itemDo = itemDoMapper.selectByPrimaryKey(id);
    if (itemDo == null) {
        return null;
    }
    //操作获得库存的数量
    //!!!!!返回为空指针
    ItemStockDo itemStockDo = itemStockDoMapper.selectByItemId(itemDo.getId());

    //将dataObject->Model
    ItemModel itemModel = convertFromObject(itemDo, itemStockDo);


    return itemModel;
}
<select id="selectByItemId" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select
    <include refid="Base_Column_List"/>
    from item_stock
    where item_id = #{itemId,jdbcType=INTEGER}
</select>


写回答 关注

2回答

  • 龙虾三少
    2018-12-14 14:46:49

    你好,建议排查步骤如下:

    debug下代码,确认itemDO内的getId()数字,并通过和自己的数据库做对比,判断下是否数据库内对应的itemDO对应的id在item stock表里没有对上

    猜测你的问题应该是在创建item的时候没有把itemstock表的item id字端和item表的id字端对应上

    龙虾三少 回复qq_新_b...

    外键关联是数据库级别保证集联一致性的,会影响查询和插入的性能,如果你的应用逻辑写的没有错误,是不会出现有查不到的情况的,因此在互联网项目中强烈不建议使用外健,因为没有必要,多加了许多无用的消耗

    2018-12-16 13:17:08

    共 2 条回复 >

  • 慕九州1054126
    2020-05-07 16:31:05

    我也是出现了这样的问题,命名把itemstock插入进去了,但就是获取不到,犯了一个低级错误,就是

    selectByItemId的sql语句中where条件应该是item_id而不是id。。。。。。。


SpringBoot构建电商基础秒杀项目

应用SpringBoot快速搭建拥有用户、商品、交易及秒杀活动的电商秒杀应用。

49065 学习 · 954 问题

查看课程

相似问题