我是靠谱客的博主 高兴柜子,最近开发中收集的这篇文章主要介绍idea报错-java.lang.IllegalStateException:(数组Arrays.asList()),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

### Error updating database.  Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property '__frch_listItem_2'. It was either not specified and/or could not be found for the javaType ([J) : jdbcType (null) combination.
### Cause: java.lang.IllegalStateException: Type handler was null on parameter mapping for property '__frch_listItem_2'. It was either not specified and/or could not be found for the javaType ([J) : jdbcType (null) combination.] with root cause

java.lang.IllegalStateException: Type handler was null on parameter mapping for property '__frch_listItem_2'. It was either not specified and/or could not be found for the javaType ([J) : jdbcType (null) combination.
	at org.apache.ibatis.mapping.ParameterMapping$Builder.validate(ParameterMapping.java:119) ~[mybatis-3.4.6.jar:3.4.6]
	at org.apache.ibatis.mapping.ParameterMapping$Builder.build(ParameterMapping.java:104) ~[mybatis-3.4.6.jar:3.4.6]

代码:

/**
 *  批量下架
 * @param ids
 * @return
 */
@PutMapping("/pull/many")
public Result pullMany(@RequestBody long[] ids){
    int count = spuService.pullMany(ids);
    return new Result(true,StatusCode.OK,count+"款商品下架成功");
}


/**
 * 批量下架
 * @param ids
 * @return
 */
int pullMany(long[] ids);


/**
 * 批量下架
 * @param ids 需要下架的商品ID集合
 * @return
 */
@Override
public int pullMany(long[] ids) {
    //is_marketable是否上架,0已下架,1已上架
    //is_delete是否删除,0:未删除,1:已删除
    //status审核状态,0:未审核,1:已审核,2:审核不通过
    //批量上架 update tb_spu set is_marketable=1 where id in(ids)and is_delete=0 and is_marketable=0 and status=1
    //批量下架 update tb_spu set is_marketable=0 where id in(ids) and is_delete=0 and is_marketable=1 and status=1

    Spu spu=new Spu();
    spu.setIsMarketable("0");//下架
    Example example=new Example(Spu.class);
    Example.Criteria criteria = example.createCriteria();
    criteria.andIn("id", Arrays.asList(ids));//id
    //上架状态
    criteria.andEqualTo("isMarketable","1");
    //审核通过的
    criteria.andEqualTo("status","1");
    //非删除的
    criteria.andEqualTo("isDelete","0");
    return spuMapper.updateByExampleSelective(spu, example);
}

List<>集合中只能放引用类型,Arrays.asList()不能用于基本数据类型,适用于对象型数据的数组(String、Integer...)

程序运行的结果并是不是我们想要的5,而是1,这是因为asList方法接受的参数是一个可变长度的泛型

而java的8中基本数据类型是不能被泛型化的,其相应的包装类是可以被泛型化的,只有Object及

其子类才可以泛型化。数组是可以被泛型化的,所以此demo输出结果是1,而不是5。

要想输出是5,只需要将int改为Integer

换成Long[] ids即可

/**
 *  批量下架
 * @param ids
 * @return
 */
@PutMapping("/pull/many")
public Result pullMany(@RequestBody long[] ids){
    int count = spuService.pullMany(ids);
    return new Result(true,StatusCode.OK,count+"款商品下架成功");
}


/**
 * 批量下架
 * @param ids
 * @return
 */
int pullMany(long[] ids);


/**
 * 批量下架
 * @param ids 需要下架的商品ID集合
 * @return
 */
@Override
public int pullMany(Long[] ids) {
    //is_marketable是否上架,0已下架,1已上架
    //is_delete是否删除,0:未删除,1:已删除
    //status审核状态,0:未审核,1:已审核,2:审核不通过
    //批量上架 update tb_spu set is_marketable=1 where id in(ids)and is_delete=0 and is_marketable=0 and status=1
    //批量下架 update tb_spu set is_marketable=0 where id in(ids) and is_delete=0 and is_marketable=1 and status=1

    Spu spu=new Spu();
    spu.setIsMarketable("0");//下架
    Example example=new Example(Spu.class);
    Example.Criteria criteria = example.createCriteria();
    criteria.andIn("id", Arrays.asList(ids));//id
    //上架状态
    criteria.andEqualTo("isMarketable","1");
    //审核通过的
    criteria.andEqualTo("status","1");
    //非删除的
    criteria.andEqualTo("isDelete","0");
    return spuMapper.updateByExampleSelective(spu, example);
}

最后

以上就是高兴柜子为你收集整理的idea报错-java.lang.IllegalStateException:(数组Arrays.asList())的全部内容,希望文章能够帮你解决idea报错-java.lang.IllegalStateException:(数组Arrays.asList())所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部