我想知道,我们如何在 myBatis 关联标签中传递多个列。
例如,我的 mapper.xml 文件中有以下 xml 片段:
<resultMap type="com.mysite.domain.CourseBuilderCourses" id="ResultMapWithAssmnts" extends="BaseResultMap">
<association property="totalAssignmentCnt" column="course_id" select="selectTotalAssgnmentsCnt"/>
<association property="totalAssessmentCnt" column="course_id" select="selectTotalAssesmentsCnt"/>
<!-- see this association >> --> <association property="subscription" column="course_id" select="com.mysite.persistence.mybatis.CourseSubscriptionMapper.selectByUsercId"/>
</resultMap>
如您所见,<association>
with property
订阅只有一栏,course_id
我想向它传递 2 列,以及由此产生的代码,我们该怎么做?
我尝试了以下组合,但没有成功:
column="{course_id,user_id}" // null,null are passed as parameters
column="course_id,user_id" // null,null are passed as parameters
column="{COURSE_ID=course_id,USER_ID=user_id}" // null,null are passed as parameters
但如果我单身通过了
列=“{course_id}”或列=“course_id”
工作没有任何问题。
大家有什么想法吗?
您应该对组合键使用以下语法:
column="{prop1=col1,prop2=col2}".
Where prop1, prop2
是关联查询的参数col1, col2
是传递给该查询的 sql 列。
在你的情况下:
CourseMapper.xml:
column="{courseId=id,userId=user_id}"
...
select id, user_id, ... from course ...
CourseSubscriptionMapper.xml:
<select id="selectByUsercId" ...>
select ... where course_id=#{courseId} and user_id=#{userId}
</select>
我刚刚检查过它对我来说效果很好。
如果您有任何疑问,请随时询问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)