问题背景
事情是这样的,有个Employee实体类,包括属性:id,age,number等整型;一开始这几个属性用的是int,但是后来有需求要对Employee的所有属性做多条件查询,即如果哪个属性不为空则根据该属性进行查询。所以,把id,age,number改为Integer类型了,然后在mapper.xml中用< if > 标签进行条件判断的时候报了Mybatis的空指针异常。 如下:
问题解决
Mapper接口方法的参数如果是一个实体类,那么Mybatis是通过调用实体类的get方法来获取属性的(盲猜),然后我发现我修改实体类的int属性为Integer属性的时候,没有改get方法的返回结果为Integer(仍然是int),将get方法的返回结果也改为Integer则问题解决。