今天一下午加一晚上弄mybatis一对多映射,始终出不出来,后来发现是返回类型不能写resultType而是resultMap
resultMap=“BaseResultMap”
<select id="findAllClass" resultMap="BaseResultMap">
SELECT class.ID,class.classname,student.name FROM class LEFT JOIN student ON class.Id=student.classId
</select>
贴下代码,一个班级有多个学生
package cn.lzm.pojo;
import java.util.List;
public class Class {
private Integer id;
private String classname;
private List<Student> studentList;
public List<Student> getStudentList() {
return studentList;
}
public void setStudentList(List<Student> studentList) {
this.studentList = studentList;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getClassname() {
return classname;
}
public void setClassname(String classname) {
this.classname = classname == null ? null : classname.trim();
}
}
ClassMapper.xml
<mapper namespace="cn.lzm.mapper.ClassMapper">
<resultMap id="BaseResultMap" type="cn.lzm.pojo.Class">
<id column="Id" jdbcType="INTEGER" property="id" />
<result column="classname" jdbcType="VARCHAR" property="classname" />
<collection property="studentList" ofType="cn.lzm.pojo.Student">
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
</collection>
</resultMap>
下面是resultType和resultMap的区别
原文地址