总结一下这种情况的原因,做个记录。
List结果出现All Elements are Null的情况,首先是List本身允许插入空值,然后,Mybatis映射到List有空值。
那么Mybatis映射到List有空值,可能是映射有问题,也有可能是sql本身产生了一条null记录。
映射问题,检查resultMap或resultType。
sql问题,我遇到的情况是使用max、count等内置函数时,如果函数内的值为空,会产生一条null记录。如下所示,
使用max()函数查询,但是max的内容有空值,出现了sql查出一条为null的记录。
解决方法很简单,加上一句group by就可避免这个情况,如下图。
但是具体原因不是很清楚,希望有大佬可以指点迷津。