问题遇到的现象和发生背景
mybatis 进行一对一关联查询时候, 测试类总是报实体类tostring错误,无法定位原因
package cn.com.sise.pojo;
/**
* 专业类
*/
public class Major {
private String majorId;//专业ID
private String majorName;//专业
private Integer tuition;//学费
private Integer deptId;//系别ID
private Dept dept;//添加关联对象
public Major() {
}
public Major(String majorId) {
this.majorId = majorId;
}
/*public Major(Integer deptId) {
this.deptId = deptId;
}*/
/*public Major(String majorName, Integer deptId) {
this.majorName = majorName;
this.deptId = deptId;
}
*/
public String getMajorId() {
return majorId;
}
public void setMajorId(String majorId) {
this.majorId = majorId;
}
public String getMajorName() {
return majorName;
}
public void setMajorName(String majorName) {
this.majorName = majorName;
}
public Integer getTuition() {
return tuition;
}
public void setTuition(Integer tuition) {
this.tuition = tuition;
}
public Integer getDeptId() {
return deptId;
}
public void setDeptId(Integer deptId) {
this.deptId = deptId;
}
public Dept getDept() {
return dept;
}
public void setDept(Dept dept) {
this.dept = dept;
}
@Override
public String toString() {
return "Major{" +
"majorId=" + majorId +
", majorName='" + majorName + '\'' +
", tuition=" + tuition +
", deptId=" + dept.getDeptId() +
", deptname=" + dept.getDeptName() +
'}';
}
}
MajorMapper.xml
<mapper namespace="cn.com.sise.mapper.MajorMapper">
<!--嵌套查询方式:根据专业名称模糊查找专业及相关的系部信息-->
<select id="findMajorsWithDeptByMajorName" resultMap="majorList">
select * from tb_major where major_name like concat("%",#{majorName},"%")
</select>
<resultMap id="majorList" type="major">
<id property="majorId" column="major_id"/>
<result property="majorName" column="major_name"/>
<result property="tuition" column="tuition"/>
<!-- 方式一:嵌套查询 -->
<!-- 一对一:association使用select属性引入另外一条SQL语句 -->
<association property="dept" javaType="cn.com.sise.pojo.Dept" column="dept_id" select="cn.com.sise.mapper.DeptMapper.findDeptById"/>
</resultMap>
</mapper>
DeptMapper.xml
<!-- 根据系编号查询系信息-->
<select id="findDeptById" resultType="cn.com.sise.pojo.Dept">
select * from tb_dept where dept_id=#{deptId}
</select>