There is no getter for property named ‘depart’ in ‘class com.xuezhixin.mls.web.model.Major’
我的major bean 是使用generate mybatis 自动生成的。但是遇到多表连接查询的时候 出现以上错误,原因是我的major bean 里面没有depart 所以会出现错误,需要手动补齐。
我的bean:
major 专业
private String majorId;
private String departId;
private String name;
private Byte sortOrder;
depart 学院 :
private String departId;
private String schoolId;
private String name;
在mybatis 中进行多表查询
结果映射 由于最后的结果来自两个表,对基本的结果集要进行扩大。
<resultMap type="Major" id="MajorRM" extends="BaseResultMap">
<association javaType="Depart" property="depart">
<result column="depart_name" property="name" />
</association>
</resultMap>
多表查询语句,使用的是动态sql ,
<select id="selectByModel" parameterType="Major" resultMap="MajorRM">
select m.*,d.name as depart_name from major m
left join depart d on m.departId=d.departId
<where>
<if test="departId !=null and departId !='' ">
and m.departId=#{departId,jdbcType=CHAR}
</if>
<if test="name != null and name!='' ">
and m.name=#{name,jdbcType=CHAR}
</if>
</where>
</select>
jsp 显示结果部分:
<td>${major1.name}</td>
<td>${major1.depart.name}</td>
如果没有在 major bean 中增加:
private Depart depart;
public Depart getDepart() {
return depart;
}
public void setDepart(Depart depart) {
this.depart = depart;
}
会出现如标题错误。
<td>${major1.name}</td>
<td>${major1.depart.name}</td>
major1.name 实际的代码应该是(我认为逻辑上)
Major major=new Major();
major.getName();
major.getDepart().getName();