关于List.size()=1但是list 里All elements are null问题的 原因及解决方案

工作总结——待完善

  • 一、现象
  • 二、原因
  • 三、解决方案
    • 现象
  • Service层
  • Dao层

一、现象

二、原因

三、解决方案

现象

代码中使用list对象存放DAO层执行后返回的结果时,有时候会出现list.size()=1,但是list 内部All elements are null的情况。
这种情况发生后,往往会导致代码报错。
实例如下图:

Service层

	List<domain> list_minDate = new ArrayList<>();
	list_minDate = FqryHisSumProfitDAO.FQryMinDay(ProductID,ID);

Dao层

	@Select(" ")
	public  List<domain>  FQryMinDay(@Param("productID") String productID );

入参中的productID在t_1和t_2 表中并不能查出数据。但union all ,list里却多了一条记录。

List报错空指针:
mybatis查询返回List<String>结果为[null],size是1的原因分析
方案:
Result= list_minDate.parallelStream().filter(Objects::nonNull).collect(Collectors.toList());

原因:
1.select xx from ( select xx from table a union all select xx from table b) c where c.xx= xx
尽管未查询出结果,但仍然会往list里插入一条null记录
2.SQL统计时,使用了聚合函数SUM

你可能感兴趣的:(工作总结,mysql,异常报错,mybatis,java,数据库)