zoukankan      html  css  js  c++  java
  • Mybatis Collection查询集合只出现一条数据

    1、原因

        如果两表联查,主表和明细表的主键都是id的话,明细表的多条只能查询出来第一条。

    2、解决办法

        级联查询的时候,主表和从表有一样的字段名的时候,在mysql上命令查询是没问题的。但在mybatis中主从表需要为相同字段名设置别名。设置了别名就OK了。

    例子:

    主表Standard, 从表StandEntity,均有名为id的字段

    复制代码
    <resultMap id="StandardAndEntityResultMap" type="whu.edu.irlab.model.Standard" extends="BaseResultMap">
        <collection property="standEntities" ofType="whu.edu.irlab.model.StandEntity">
            (依据下面的select中更名的字段id别名se_id,在此将相同的字段名改为别名)
            <id column="se_id" property="id" jdbcType="INTEGER" /> 
            <result column="stand_id" property="standId" jdbcType="INTEGER" />
            <result column="stand_name" property="standName" jdbcType="VARCHAR" />
            <result column="entity_name" property="entityName" jdbcType="VARCHAR" />
        </collection>
    </resultMap>
     
    <select id="findAllStandardAndEntity" resultMap="StandardAndEntityResultMap">
        select
        standard.*,
        standard_entity.id se_id,(在此将两表中相同的字段名id改为别名se_id,对应的上面collection部分也需要更改)
        standard_entity.stand_id,
        standard_entity.stand_name,
        standard_entity.entity_name
        from
          standard INNER JOIN standard_entity on standard.id = standard_entity.stand_id
    </select>
    作者:战旗 内容声明: 本内容属自己学习使用 ,若有抄袭情邮件(zhanqi3712@qq.com)告知 ,本人会尽快删除
  • 相关阅读:
    android 访问SD卡的方法
    android 用Achartengine 作图
    hello
    IIS 7.0 "确认文件是否存在"功能
    test
    收藏:如何在Web页面上直接打开、编辑、创建Office文档
    JavaScript面向对象技术
    正则表达式30分钟入门教程
    JWT有状态登陆与无状态登陆
    20条JavaScript代码简洁的写法
  • 原文地址:https://www.cnblogs.com/liuyun-10/p/6813712.html
Copyright © 2011-2022 走看看