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);
                });
  • 相关阅读:
    给脚本绑定LUA解释器
    Flash Socket连接受限解决方法
    使用CMake构建编译环境
    如何使用OpenCL编写程序
    使用zzip和minizip解压缩文件
    使用CURL库下载文件
    使用GDI+保存位图文件为PNG文件
    linux学习
    Tomcat6连接池配置
    ArrayList与LinkedList性能差别
  • 原文地址:https://www.cnblogs.com/zwh0910/p/15469036.html
Copyright © 2011-2022 走看看