mybatis 一对一关联 association 返回空值
最近学习spring mvc + mybatis开发,看的书是《Spring MVC+Mybatis开发 从入门到精通》,在学习一对一关联,并且延迟加载一节的时候,使用书上讲解的例子无法调通,主要代码问题是在mapper.xml文件中,部分如下:
select
*
from sys_userlogon
where F_UserId = #{value}
sys_user 表和 sys_userlogon 表的关系是
sys_user.f_id = sys_userlogon.f_userid
一对一关联使用的是association配置,property指向sys_user实体类的userLogon属性,如下:
关联的sql语句id是 findSysUserLogonById ,具体结构如下:
select
*
from sys_userlogon
where F_UserId = #{value}
调试过程中在控制台中确实看到了延迟加载执行的sql是正常的,但是SysUser实体中的 userLogon却始终为null
怀疑是两个类某些字段的属性存在相同命名的问题,但是觉得不应该如此low,但还是试着在association节中单独加上result节声明,如下:
结果依然不行,后来参考网上相同问题的答案,单独增加一个resultMap,修改 findSysUserLogonById的select配置节,将resultType=“com.pp.entity.SysUserLogon”去掉,换成resultMap=“(新定义的SysUserLogon的resultMap名)”,代码如下:
select
*
from sys_userlogon
where F_UserId = #{value}
这样调整之后,association关联的对象不再为null