- 一、现象
- 二、原因
- 三、解决方案
- 现象
- Service层
- Dao层
代码中使用list对象存放DAO层执行后返回的结果时,有时候会出现list.size()=1,但是list 内部All elements are null的情况。
这种情况发生后,往往会导致代码报错。
实例如下图:
ListDao层list_minDate = new ArrayList<>(); list_minDate = FqryHisSumProfitDAO.FQryMinDay(ProductID,ID);
@Select(" ")
public List 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



