zoukankan      html  css  js  c++  java
  • Mybatis一对多关系的ResultMap写法

    ResultMap的写法
    <resultMap id="UserAndItemsResultMap" type="com.iot.mybatis.po.User">
        <id column="user_id" property="id"/>
        <result column="username" property="username"/>
        <result column="sex" property="sex"/>
        <result column="address" property="address"/>
        <collection property="ordersList" ofType="com.iot.mybatis.po.Orders">
            <id column="id" property="id"/>
            <result column="number" property="number"/>
            <result column="createtime" property="createtime"/>
            <result column="note" property="note"/>
            <collection property="orderdetails" ofType="com.iot.mybatis.po.Orderdetail">
                <id column="oderdetail_id" property="id"/>
                <result column="items_id" property="items_id"/>
                <result column="items_num" property="items_num"/>
                <result column="orders_id" property="orders_id"/>
                <association property="items" javaType="com.iot.mybatis.po.Items">
                    <id column="items_detail" property="id"/>
                    <result column="items_name" property="name"/>
                    <result column="items_detail" property="detail"/>
                    <result column="items_price" property="price"/>
                </association>
            </collection>
        </collection>
    </resultMap>



    ①ResultMap标签
    type中应该填写返回值的pojo类型,例子中的User包含了用户的基本信息以及一个存放订单orders的pojo的list集合。orders的pojo除了订单信息,还包括了订单详细ordersdetail的list集合。
    ②collection标签
    collection表示一对多的关系,property是定义好的集合类型,oftype指定集合中的元素类型。
    ③id标签
    作用相当于外键,用于两表关联的标识。
    ④result标签
    普通列,column对应数据库中表的列,property对应类中定义的属性。
    ⑤association标签
    表示一对一的映射关系。
    ⑥结构分析
    商品items和订单明细orderdetails是一对一的关系,通过association联系在一起。items和orderdetails整个关联体和order是多对一的关系。而用户和order是一对多关系,所以items和orderdetails的关联体以collection的方式包含在整个order的collection中。

    Mybatis Collection查询集合只出现一条数据
    1、原因
    如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。

    2、解决办法
    级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的。但在mybatis中主从表需要为相同字段名设置别名。设置了别名就OK了。
  • 相关阅读:
    Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) C 倒序并查集
    hdu 5573 Binary Tree 构造
    hdu 5514 Frogs 容斥思想+gcd 银牌题
    hdu 5536 Chip Factory 字典树+bitset 铜牌题
    LA 7263 Today Is a Rainy Day bfs+暴力 银牌题
    hdu 5834 Magic boy Bi Luo with his excited tree 树形dp+转移
    hdu 5869 Different GCD Subarray Query BIT+GCD 2016ICPC 大连网络赛
    LA 7043 International Collegiate Routing Contest 路由表 字典树离散化+bitset 银牌题
    校验注解工具类
    java-创建对象实例
  • 原文地址:https://www.cnblogs.com/pxuan/p/13600423.html
Copyright © 2011-2022 走看看