為什么我的商品創(chuàng)建頁面就一直報錯,數(shù)據(jù)庫里面也沒插入任何數(shù)據(jù)。。
?/** ?*?@author?Mib_du ?*?@creat?2019-06-03-9:55 ?*/ @Service public?class?ItemServiceImpl?implements?ItemService?{ ????//使用validator校驗輸入?yún)?shù) ????@Autowired ????private?ValidatorImpl?validator; ????@Autowired ????private?ItemDOMapper?itemDOMapper; ????@Autowired ????private?ItemStockDOMapper?itemStockDOMapper; ????//itemmodel->itemdataobject ????private?ItemDO?itemDOconvertFromItemModel(ItemModel?itemModel)?{ ????????if(itemModel?==?null) ????????????return?null; ????????ItemDO?itemDO?=?new?ItemDO(); ????????BeanUtils.copyProperties(itemModel,itemDO); ????????itemDO.setPrice(itemModel.getPrice().doubleValue()); ????????return?itemDO; ????} ????//itemstockmodel->itemdataobject ????private?ItemStockDO?convertFromItemModel(ItemModel?itemModel){ ????????if(itemModel?==?null) ????????????return?null; ????????ItemStockDO?itemStockDO?=?new?ItemStockDO(); ????????itemStockDO.setItemId(itemModel.getId()); ????????itemStockDO.setStock(itemModel.getStock()); ????????return?itemStockDO; ????} ????@Override ????@Transactional ????public?ItemModel?createItem(ItemModel?itemModel)?throws?BusinessException?{ ????????//校驗入?yún)?????????ValidationResult?result?=?validator.validate(itemModel); ????????if(result.isHasErrors()){ ????????????throw?new?BusinessException(EnumBusinessError.PARAMETER_VALIDATION_ERROR,result.getErrorMsg()); ????????} ????????//轉(zhuǎn)化itemmodel->dataobject ????????ItemDO?itemDO?=?this.itemDOconvertFromItemModel(itemModel); ????????//寫入數(shù)據(jù)庫 ????????itemDOMapper.insertSelective(itemDO); ????????itemModel.setId(itemDO.getId()); ????????ItemStockDO?itemStockDO?=?this.convertFromItemModel(itemModel); ????????itemStockDOMapper.insertSelective(itemStockDO); ????????//返回創(chuàng)建完成的對象 ????????return?this.getItemById(itemModel.getId()); ????} ????@Override ????public?List<ItemModel>?listItem(Integer?id)?{ ????????return?null; ????} ????@Override ????public?ItemModel?getItemById(Integer?id)?{ ????????ItemDO?itemDO?=?itemDOMapper.selectByPrimaryKey(id); ????????if(itemDO?==?null) ????????????return?null; ????????//操作獲得庫存數(shù)量 ????????ItemStockDO?itemStockDO?=?itemStockDOMapper.selectByItemId(itemDO.getId()); ????????//將dataobject->model ????????ItemModel?itemModel?=?convertFromDataObject(itemDO,itemStockDO); ????????return?itemModel; ????} ????//dataobject?-->?model ????private?ItemModel?convertFromDataObject(ItemDO?itemDO?,?ItemStockDO?itemStockDO){ ????????ItemModel?itemModel?=?new?ItemModel(); ????????BeanUtils.copyProperties(itemDO,itemModel); ????????itemModel.setPrice(new?BigDecimal(itemDO.getPrice())); ????????itemModel.setStock(itemStockDO.getStock()); ????????return?itemModel; ????} }
執(zhí)行到
itemDOMapper.insertSelective(itemDO);
這行就會報錯,瀏覽器會返回下面這個錯誤信息:
下面這個是報錯的時候報錯信息:
我調(diào)試了一下,發(fā)現(xiàn)斷點(diǎn)之前的數(shù)據(jù)都是傳進(jìn)itemDO里了的,但是就是在執(zhí)行inSertselective(itemDO)這句話時就會報錯了。
有哪位大佬能幫我解答下嗎 謝謝?。?/p>
2019-06-05
媽喲我也是這個錯誤,折騰了一晚上了,謝謝樓主
2019-06-04
哎....我加了個try-catch捕獲了一下這句話的異常,發(fā)現(xiàn)異常信息里輸出的是數(shù)據(jù)庫里的sales字段沒有初始值,打開數(shù)據(jù)庫一看果然sales字段沒有設(shè)置默認(rèn)初始值為0,設(shè)置好后再運(yùn)行,OK,完美~? ??
真是個深刻的教訓(xùn)啊,不會debug找這個小錯誤找了一晚上.....
2019-06-03