mybatis resultmap怎么为对象赋值的调用顺序
这篇文章主要介绍“mybatisresultmap怎么为对象赋值的调用顺序”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatisresultmap怎么为对象赋值的调用顺序”文章能帮助大家解决问题。
resultmap 为对象赋值的调用顺序
写了一个mybatis的mapper映射文件,
java bean定义如下
publicclassGroupCourseResultextendsGroupResult{privateStringcid;privateStringcname;publicGroupCourseResult(intstuschool,intnian,Stringstuclass,Stringcid,Stringcname){super(stuschool,nian,stuclass);this.cid=cid;this.cname=cname;}publicStringgetCid(){returncid;}publicvoidsetCid(Stringcid){this.cid=cid;}publicStringgetCname(){returncname;}publicvoidsetCname(Stringcname){this.cname=cname;}}
部分mybatis映射文件如下
...
实体类中的属性名和查询的列名完全匹配,但是没有查询stuclass,则封装后的实体类中的stuclass属性应该为空。
然而程序运行后,stuclass属性不仅不为空,还与cname完全相同,百思不得其解,故翻了翻mybatis的源码。
在mybatis中的DefaultResultSetHandler类中,
createResultObject方法的代码如下
privateObjectcreateResultObject(ResultSetWrapperrsw,ResultMapresultMap,List>constructorArgTypes,List