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了。
  • 相关阅读:
    Android实现《天女散花》效果(带源码)
    android 自定义(组合)控件 + 自定义控件外观
    Android 实现书籍翻页效果完结篇
    关于Button setOnClickListener 批量增加监听
    Android 小项目之解析如何获取SDCard 内存
    RadioGroup RadioButton 和 自定义对话框(自定义确定和取消)
    拒绝折腾——好用的EmEditor
    jquery ui 出现的诡异问题
    Google的PageRank算法浅析
    JQuery对数组的一些操作总结
  • 原文地址:https://www.cnblogs.com/pxuan/p/13600423.html
Copyright © 2011-2022 走看看