使用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,"订单入库失败" );
}