zoukankan      html  css  js  c++  java
  • mybatis中一对多查询collection关联不执行

     今天遇到的原因是因为下面红底id没有,导致关联查询没有条件(id字段没传),所以一直没有执行。

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="com.***.abc.dao.CompanyMapper" >
      <resultMap id="BaseResultMap" type="com.***.abc.bean.Company" >
        <id column="id" property="id" jdbcType="BIGINT" />
        <result column="company_name" property="companyName" jdbcType="VARCHAR" />
    //一个公司包含多个员工,根据公司id可以查出一个公司 所有员工,一对多的关系。
    <collection property="empList" fetchType="lazy" ofType="com.***.abc.bean.Emp" column="id"
    javaType="ArrayList" select="com.***.abc.dao.EmpMapper.queryListByCompanyId"/>
    </resultMap>
    //根据id去查询公司
    <select id="getCompany" resultMap="BaseResultMap">
    select id,company_name,empList from company where id=#{id}
    </select> </mapper>

     定义一个员工接口

    public interface EmpMapper  { 
    List
    <Emp> queryListByCompanyId(Long companyId);
    }

    //emp的xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.***.abc.dao.EmpMapper">
    
        <select id="queryListByCompanyId" parameterType="long" resultType="com.***.abc.bean.Emp">
            SELECT * FROM emp WHERE f.company=#{id}
        </select>
    </mapper>
    ...
  • 相关阅读:
    renderer:function参数介绍
    JSF request参数传递
    jsf初学解决faces 中文输入乱码问题
    JSF中获得HTTP SESSION和Request
    jquery、js调用iframe父窗口与子窗口元素的方法整理
    android 手势识别学习
    JAVA事件监听机制学习
    我的android学习脚步----------- 的第一个应用
    图像处理之哈哈镜的实现
    图像处理知识随笔
  • 原文地址:https://www.cnblogs.com/javage/p/9647610.html
Copyright © 2011-2022 走看看