I'm trying to demo iBATIS and I can get this many-to-many relationship to work correctly.
Mapping file: <?xml version="1.0" encoding="UTF-8"?> <!-- <sqlMap namespace="students"> --><!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd"> <sqlMap namespace="customStudents"> <resultMap class="bo.customStudent_many_to_many" id="abatorgenerated_StudentTeacherResult" groupBy="student_id" > <result column="student_id" property="studentId" /> <result column="first_name" property="firstName" /> <result column="last_name" property="lastName" /> <result column="grade" property="grade" /> <result column="sex" property="sex" /> <result column="test" property="test" /> <!-- NON GENERATED CODE AHEAD --> <result property="teachers" resultMap="customStudents.TeachersList"/> </resultMap> <resultMap class="bo.customTeacher_many_to_many" id="TeachersList"> <result column="teacher_id" property="teacherId" /> <result column="t_first_name" property="firstName" /> <result column="t_last_name" property="lastName" /> </resultMap> <select id="find_teacher_by_id" resultClass="bo.customTeacher_many_to_many" resultMap="customStudents.TeachersList" > SELECT t.teacher_id, t.t_first_name , t.t_last_name FROM teachers t WHERE t.teacher_id = #key# </select> <select id="find_student_by_id" parameterClass="int" resultMap="customStudents.abatorgenerated_StudentTeacherResult" > SELECT t.teacher_id, t.t_first_name, t.t_last_name, s.student_id, s.first_name, s.last_name, s.grade, s.sex, s.test FROM teachers t LEFT JOIN teachers_students st ON st.teacher_id = t.teacher_id LEFT JOIN students s ON s.student_id = st.student_id WHERE s.student_id = #pkey# </select> </sqlMap> Java Code: List studs = client.queryForList("customStudents.find_student_by_id", 1); Results: Studs size: 2 Stud dump: {studentId=1, sex=m, [EMAIL PROTECTED], class=class bo.customStudent_many_to_many, grade=100, test=te, firstName=joe, lastName=acklin} ---> Teach dump: {class=class bo.customTeacher_many_to_many, teacherId=1, firstName=snooty, lastName=mcSnootson} Stud dump: {studentId=1, sex=m, [EMAIL PROTECTED], class=class bo.customStudent_many_to_many, grade=100, test=te, firstName=joe, lastName=acklin} ---> Teach dump: {class=class bo.customTeacher_many_to_many, teacherId=2, firstName=dorky, lastName=Von PeckerStein} Its giving me two students, and one teacher per student. The results I want are 1 student with a list of two Teachers. I can't figure out what i'm doing wrong here. Any suggestions? Thanks guys! .. and girls :) -- View this message in context: http://www.nabble.com/Many-to-many-results-reversed-tp15091562p15091562.html Sent from the iBATIS - User - Java mailing list archive at Nabble.com.