@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>你好,建议排查步骤如下:
debug下代码,确认itemDO内的getId()数字,并通过和自己的数据库做对比,判断下是否数据库内对应的itemDO对应的id在item stock表里没有对上
猜测你的问题应该是在创建item的时候没有把itemstock表的item id字端和item表的id字端对应上
我也是出现了这样的问题,命名把itemstock插入进去了,但就是获取不到,犯了一个低级错误,就是
selectByItemId的sql语句中where条件应该是item_id而不是id。。。。。。。