MyBatis填坑日记
配置了映射后,原字段的值为空
描述
以用户、部门为例,一个用户对应一个部门,一对一映射。
在配置映射@Result之前,可以读出deptId的值。
但配置映射@Result之后,deptId的值为空。
代码为
@Select("select * from employee e where e.id=#{id}")
@Results({
@Result(property = "department", column = "dept_id", one = @One(select="com.doss.framework.mapper.DepartmentMapper.findById"))
})
public Employee findById(Integer id);
原因&解决方案
需要再配置一个@Result,将结果写入deptId,代码如下
@Select("select * from employee e where e.id=#{id}")
@Results({
@Result(property = "department", column = "dept_id", one = @One(select="com.doss.framework.mapper.DepartmentMapper.findById")),
@Result(property = "deptId", column = "dept_id")
})
public Employee findById(Integer id);