刚开始接触ibatis,一对多关联查询时遇到问题。
StuClass和Student为一对多关系。
2张表为Student:
字段:sid,sname,classid
StuClass:
字段:classid,classname
2个实体类如下public class Student {
private Integer sid;
private String sname;
private StuClass classid;
//省略get,set
}
public class StuClass {
private Integer classid;
private String classname;
private List<Student> students;
}
配置文件如下:<resultMap id="getStuClass" class="ibatis.model.StuClass">
<result property="classid" column="classid"></result>
<result property="classname" column="classname"></result>
<result property="students" column="classid" select="getStudentByClass"></result>
</resultMap><resultMap id="Student" class="ibatis.model.Student">
<result property="sid" column="sid"></result>
<result property="sname" column="sname"></result>
<result property="classid" column="classid" select="StuClass"></result>
</resultMap><select id="StuClass" parameterClass="int" resultClass="ibatis.model.StuClass">
select * from class where classid=#classid#
</select><select id="getStudentByClass" parameterClass="int" resultClass="ibatis.model.Student">
select * from student where classid = #classid#
</select>
查询StuClass时不能把关联的Student一起查出来,是不是配置文件写的不对,应该怎么改?

解决方案 »

  1.   

    select要用resultMap[code=Java<select id="StuClass" parameterClass="int" resultMap="getStuClass">
        select * from class where classid=#classid#
    </select>
    [/code]
      

  2.   

    select要用resultMap
    <select id="StuClass" parameterClass="int" resultMap="getStuClass">
      select * from class where classid=#classid#
    </select>
      

  3.   

    <select id="getStudentByClass" parameterClass="int" resultClass="ibatis.model.Student">
        select * from student where classid = #classid#
    </select>这里也要用resultMap,OK了,问题解决了,谢谢