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);