為什么我的商品創(chuàng)建頁(yè)面就一直報(bào)錯(cuò),數(shù)據(jù)庫(kù)里面也沒(méi)插入任何數(shù)據(jù)。。
?/** ?*?@author?Mib_du ?*?@creat?2019-06-03-9:55 ?*/ @Service public?class?ItemServiceImpl?implements?ItemService?{ ????//使用validator校驗(yàn)輸入?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)入?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); ????????//寫(xiě)入數(shù)據(jù)庫(kù) ????????itemDOMapper.insertSelective(itemDO); ????????itemModel.setId(itemDO.getId()); ????????ItemStockDO?itemStockDO?=?this.convertFromItemModel(itemModel); ????????itemStockDOMapper.insertSelective(itemStockDO); ????????//返回創(chuàng)建完成的對(duì)象 ????????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; ????????//操作獲得庫(kù)存數(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);
這行就會(huì)報(bào)錯(cuò),瀏覽器會(huì)返回下面這個(gè)錯(cuò)誤信息:
下面這個(gè)是報(bào)錯(cuò)的時(shí)候報(bào)錯(cuò)信息:
我調(diào)試了一下,發(fā)現(xiàn)斷點(diǎn)之前的數(shù)據(jù)都是傳進(jìn)itemDO里了的,但是就是在執(zhí)行inSertselective(itemDO)這句話時(shí)就會(huì)報(bào)錯(cuò)了。
有哪位大佬能幫我解答下嗎 謝謝?。?/p>
2019-06-05
媽喲我也是這個(gè)錯(cuò)誤,折騰了一晚上了,謝謝樓主
2019-06-04
哎....我加了個(gè)try-catch捕獲了一下這句話的異常,發(fā)現(xiàn)異常信息里輸出的是數(shù)據(jù)庫(kù)里的sales字段沒(méi)有初始值,打開(kāi)數(shù)據(jù)庫(kù)一看果然sales字段沒(méi)有設(shè)置默認(rèn)初始值為0,設(shè)置好后再運(yùn)行,OK,完美~? ??
真是個(gè)深刻的教訓(xùn)啊,不會(huì)debug找這個(gè)小錯(cuò)誤找了一晚上.....
2019-06-03