情况一:

报错如下:

 可以看出时standardValue字段出现了问题。

错误代码:

@Override
    public Result edit(ProductCheckItem productCheckItem) {
        UserDTO user = SessionCache.get();
        productCheckItem.setUpdateTime(new Date());
        productCheckItem.setUpdateUser(user.getUsername());
        int i = productCheckItemDao.updateByPrimaryKey(productCheckItem);
        if (i > 0) {
            return Result.operating("修改成功", true, ResultCode.SUCCESS);
        } else {
            return Result.operating("修改失败", false, ResultCode.SUCCESS);
        }
    }

前端传递过来的参数:

 难道是当standardValue为null时无法修改?

解决办法:将updateByPrimaryKey改为updateByPrimaryKeySelective,问题解决。

当用insert()插入时也会报这个错误,此时应该改为insertSelective().

情况二:

报错:无效的列类型

错误代码:

service

growMain.getSeedingRelList().forEach(rel -> {
                Map relMap = new HashMap();
                relMap.put("seedingId", rel.get("id"));
                relMap.put("plantId", growMain.getId());
                relMap.put("transplantingNum", rel.get("transplantingNum"));
                relMap.put("transplantingType", rel.get("transplantingType"));
                growMainMapper.insertSeedingRel(relMap);
            });

dao

int insertSeedingRel(Map map);

mapper.xml

<insert id="insertSeedingRel" parameterType="java.util.Map">
        INSERT INTO b_plant_seeding_rela(plant_id, seeding_id, transplanting_num, transplanting_type) VALUES (#{plantId}, #{seedingId}, #{transplantingNum}, #{transplantingType})
    </insert>

错误原因:如果前端没有传递transplantingNum和transplantingType,那么这两个值都为null,插入的时候就会报无效的列类型

解决办法:如果为null,则转为空字符串。用insertSelective可以避免将属性值为null的字段插入数据库,但是如果是用sql插入,那么就需要将null转为空字符串。

代码如下:

growMain.getSeedingRelList().forEach(rel -> {
                Map relMap = new HashMap();
                relMap.put("seedingId", rel.get("id"));
                relMap.put("plantId", growMain.getId());
                relMap.put("transplantingNum", rel.get("transplantingNum") == null ? "" : rel.get("transplantingNum"));
                relMap.put("transplantingType", rel.get("transplantingType") == null ? "" : rel.get("transplantingType"));
                growMainMapper.insertSeedingRel(relMap);
            });

 

posted on 2021-12-20 09:27  周文豪  阅读(2505)  评论(0编辑  收藏  举报