MyBatis User对象表内有课程表的集合 如何将查询结果加入集合
您可以使用MyBatis中的resultMap来实现将查询结果加入集合。
首先,您需要在User对象的映射文件中定义一个resultMap,其中包含一个集合类型的属性,用于保存课程表的查询结果。例如:
<resultMap id="userResultMap" type="User">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
<!-- 集合属性 -->
<collection property="courses" ofType="Course">
<id property="id" column="course_id" />
<result property="name" column="course_name" />
<result property="teacher" column="course_teacher" />
</collection>
</resultMap>
接下来,在查询User对象的SQL语句中使用这个resultMap。例如:
<select id="getUser" resultMap="userResultMap">
SELECT u.id, u.name, u.age, c.id AS course_id, c.name AS course_name, c.teacher AS course_teacher
FROM user u
LEFT JOIN course c ON u.id = c.user_id
WHERE u.id = #{id}
</select>
这样,在执行查询操作时,MyBatis会将课程表的查询结果自动映射到User对象的courses属性中,形成一个集合。
最后,您可以通过调用User对象的getCourses方法来获取课程表的集合。
User user = sqlSession.selectOne("getUser", 1);
List<Course> courses = user.getCourses();
这样,您就可以将查询结果加入到User对象的集合中了。
原文地址: https://www.cveoy.top/t/topic/i5qU 著作权归作者所有。请勿转载和采集!