Mapper.xml中association和collection的区别

Mapper.xml中association和collection的区别:

  • association 一对一或多对一
  • collection 一对多

Mapper.xml文件中association的使用举例:

<resultMap type="Blog" id="BlogResult">
    <result property="id" column="id"/>
    <result property="title" column="title"/>
    <result property="summary" column="summary"/>
    <result property="releaseDate" column="releaseDate"/>
    <result property="clickHit" column="clickHit"/>
    <result property="replyHit" column="replyHit"/>
    <result property="content" column="content"/>
    <result property="keyWord" column="keyWord"/>
    <!-- 一对一 -->
    <association property="blogType" column="typeId" select="com.blog.dao.BlogTypeDao.selectBlogTypeById"/>
</resultMap>

Mapper.xml文件中collection的两种使用举例:

  1. 直接指定该集合中元素的映射

    <resultMap type="User" id="userMap">
        <id property="id" column="uid"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <!-- 一对多 -->
        <collection property="roles" ofType="Role">
            <id property="id" column="rid"/>
            <result property="name" column="rname"/>
            <!-- 一对多 -->
            <collection property="permissions" ofType="Permissions">
                <id property="id" column="pid"/>
                <result property="name" column="pname"/>
            </collection>
        </collection>
    </resultMap>
    
  2. 引用别的Mapper.xml的查询方法

    <resultMap id="BaseResultMap" type="SysUser" >
        <id column="user_id" property="id" jdbcType="BIGINT" />
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
        <collection property="sysRoles" column="user_id"
                    select="com.space.sbsecurity.mapper.sys.SysRoleMapper.selectRoleListByUserId">
        </collection>
    </resultMap>
    

版权声明:本文为chenafa原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。