association判断不为空时_mybatis 一对一关联 association 返回空值

博主在学习spring mvc + mybatis开发时,遇到一对一关联且延迟加载的问题,使用书上例子无法调通,SysUser实体中的userLogon始终为null。怀疑字段命名问题但未解决,后参考网上答案,单独增加resultMap,修改select配置节,最终使association关联对象不再为空。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值