使用SpringBoot+MybatisPlus实现多表入库的时候报空指针异常

使用SpringBoot+MybatisPlus实现多表入库的时候报空指针异常,主表数据可以
录入,但是附表得数据不能录入
提示java.lang.NullPointerException
报错图

报错图

断点

图片说明

pojo

图片说明

图片说明

代码如下
Service

@Autowired
    private WebOrderMapper webOrderMapper;

    @Autowired
    private WebOrderItemMapper webOrderItemMapper;
 public String saveOrder(Order order ) {
        //准备订单编号 船东id+货主id+当前时间
        String orderId = System.currentTimeMillis() +"";
        //为Order对象补齐数据
        order.setOrderId(orderId);
        order.setCreated(new Date());
        order.setUpdated(order.getCreated());
        webOrderMapper.insert( order );
        //为OrderItem补全数据
        List<OrderItem> orderItemList = order.getOrderItems();
        for (OrderItem orderItem : orderItemList){
            orderItem.setOrderId( orderId );
            orderItem.setCreated( new Date(  ) );
            order.setUpdated(order.getCreated());
            webOrderItemMapper.insert(orderItem);
        }

        return orderId;
    }

Controller

 @Autowired
    private WebOrderService webOrderService;



    @ApiOperation(value="实现订单入库", notes="实现订单入库的接口")
    @RequestMapping(value = "/submit" ,method = RequestMethod.POST)
    public SysResult saveOrder(Order order ,Long shipownerId,Long shipperId ,Long publishCargoId){

        try {
            order.setShipownerId( shipownerId );
            order.setShipperId( shipperId );
            order.setPublishCargoId( publishCargoId );
            String orderId = webOrderService.saveOrder( order );
            if(!StringUtils.isEmpty( orderId )){
                return SysResult.ok(orderId);
            }

        }catch (Exception e){
            e.printStackTrace();

        }

        return SysResult.build( 201,"订单入库失败" );



    }

2个回答

这个不就因为你没传附表数据进来,又没判空导致的吗

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问