本文的问题为,mapper.xml文件查询到的返回体的属性与对象的属性在数量和名称上不一致时发现的问题.
1.当查询到的属性数量上少于对象的属性数量时
(1)若mapper.xml中返回的是已定义好的resultMap时,对象中未涉及到的属性会以null的值来返回;
如图:
(2)若mapper.xml中返回的是resultType类型的对象时,返回的对象均为null;
如图:
(3)采用lombok,mapper.xml中返回的是resultType类型的对象时,在查询时会报索引越界异常;
如图:
2.当查询到的属性数量上多于对象的属性数量时
(1)未采用lombok,实体为POJO,Mapper.xml的返回体为resultMap时,对象的属性在resultMap中与数据表字段进行绑定的属性,均查询显示正常,未绑定的属性,值为null
(2)未采用lombok,实体为POJO,Mapper.xml的返回体为resultType的实体对象时,返回的对象为null
如图:
(3)采用lombok,Mapper.xml返回体为resultType的实体对象时,返回正常
[注:数据表中的字段会按照顺序依次对应实体中声明顺序的属性进行对应,字段名与属性名会自动对应;但若字段的类型与属性的类型不能匹配时,会报错]
如图: