many2many

Posted csslcww

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了many2many相关的知识,希望对你有一定的参考价值。

多表连接查询

<mapper namespace="com.abc.dao.IStudentDao">

    <!-- 多表连接查询 -->

    <resultMap type="Student" id="studentMap">
        <id column="sid" property="sid" />
        <result column="sname" property="sname" />
        <collection property="courses" ofType="Course">
            <id column="cid" property="cid" />
            <result column="cname" property="cname" />
        </collection>
    </resultMap>

    <select id="selectStudentById" resultMap="studentMap">
        select sid,sname,cid,cname
        from student,course,middle
        where sid=studentId and cid=courseId and sid=#{xxx}
    </select>

</mapper>

 


多表单独查询

 

<mapper namespace="com.abc.dao.IStudentDao">

    <!-- 多表单独查询 -->

    <select id="selectCourseById" resultType="Course">
        select cid,cname from course where cid=#{jjj}
    </select>

    <resultMap type="Middle" id="middleMap">
        <id column="id" property="id"/>
        <association property="course" 
                     javaType="Course"
                     select="selectCourseById"
                     column="courseId"/>
    </resultMap>

    <select id="selectMiddleByStudent" resultMap="middleMap">
        select id,courseId from middle where studentId=#{ooo}
    </select>

    <resultMap type="Student" id="studentMap">
        <id column="sid" property="sid" />
        <result column="sname" property="sname" />
        <collection property="courses" 
                    ofType="Course"
                    select="selectMiddleByStudent"
                    column="sid"/>
    </resultMap>

    <select id="selectStudentById" resultMap="studentMap">
        select sid,sname from student where sid=#{xxx}
    </select>

</mapper>

多表复杂查询

<mapper namespace="com.abc.dao.IStudentDao">

    <!-- 多表复杂查询 -->

    <select id="selectCourseById" resultType="Course">
        select cid,cname from course where cid=#{ooo}
    </select>

    <resultMap type="Student" id="studentMap">
        <id column="sid" property="sid" />
        <result column="sname" property="sname" />
        <collection property="courses" 
                    ofType="Course"
                    select="selectCourseById"
                    column="courseId"/>
    </resultMap>

    <select id="selectStudentById" resultMap="studentMap">
        select sid,sname,courseId
        from student,middle
        where sid=studentId and sid=#{xxx}
    </select>

</mapper>

 

 

 

 

 


以上是关于many2many的主要内容,如果未能解决你的问题,请参考以下文章

如何从gorm中的many2many表中获取对象

many2many

在 EF Core6 中使用 Many2Many 的正确方法?

插入 Many2many Odoo(前 OpenERP)

Odoo many2many command

EF-core如何建立与“自身”的many2many关系