您的位置:首页 > 产品设计 > UI/UE

There is no getter for property named 'depart' in 'class com.xuezhixin.mls.web.model.Major'

2016-07-09 17:42 761 查看
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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis