zoukankan      html  css  js  c++  java
  • 报错:无效的列类型: 1111

    情况一:

    报错如下:

     可以看出时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);
                });
  • 相关阅读:
    Longest Palindromic Substring
    PayPal MLSE job description
    Continuous Median
    Remove Duplicates From Linked List
    Valid IP Address
    Longest substring without duplication
    Largest range
    Subarray sort
    Multi String Search
    Suffix Trie Construction
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15469036.html
Copyright © 2011-2022 走看看