MyBatis高级association、collection 的使用
    <resultMap type="com.mybatis.bean.Customer" id="BaseResultMap">
        <id column="cust_id" property="custId"/>
        <result column="cust_name" property="custName"/>
        <result column="cust_age" property="custAge"/>  
        <collection property="orderSet" ofType="com.mybatis.bean.Order" column="cust_id"
     select="com.mybatis.mapper.OrderMapper.getOrderByCustId">          
        </collection>   
    </resultMap>

    <select id="getCustomerByCustId" resultMap="BaseResultMap">
        select cust_id,cust_name,cust_age
         from tbl_cust
        where cust_id=#{custId}
    </select>

    <select id="getCustomerAndOrederByCustId" resultMap="BaseResultMap">
        select cust_id,cust_name,cust_age
        from tbl_cust
        where cust_id=#{custId}
    </select>

在执行getCustomerByCustId方法时不需要关联查询,不执行resultMap中的collection,在执行getCustomerAndOrederByCustId方法是需要执行关联查询,我知道在getCustomerByCustId方法的查询语句中不查询cust_id可以解决这个问题,但是现在的需求是我要放回的结果中包含cust_id的,不知道这个该怎么处理?求大神指点迷津。。。

0
扫码支付0.1元 ×
其他相关推荐
【Mybatis】深入浅出Mybatis(十三)——使用association和collection实现关联查询
一、前言      前面的时候,小编向大家介绍了Mybatis的使用,总结来说,Mybatis注重的是写sql语句。针对单表 的增删改查还是比较好写的,直接写出SQL语句可以了,但是如果遇到了多表的关联查询,可能就会复杂了点。下面小编就向大家介绍如何进行多表的复杂查询 。二、关联关系为一对一查询方法一 使用resultType      思路:创建一个大实体Model,这个Model是和关联查询的f
mybitis 利用association或collection传递多参数子查询
有时候我们在查询数据库时,需要以查询结果为查询条件进行关联查询。在mybatis 中通过 association 标签(一对一查询,collection 一对多 查询) 实现延迟加载子查询 <resultMap id="xxxMap" type="xxxx.bean.xxx" extends="zzzzMap"> <association property="destName"
【笔记】Mybatis高级查询(三)--使用<association>标签实现嵌套查询及延迟加载
&amp;amp;amp;amp;lt;association&amp;amp;amp;amp;gt;标签实现嵌套查询,需要用到以下属性: select:另一个映射查询的ID,Mybatis会额外执行这个查询获取嵌套对象的结果。 column:列名或别名,将主查询中列的结果作为嵌套查询的参数,配置方式如column={prop1=col1,prop2=col2},prop1和prop2作为嵌套查询的参数。 fetchType:数据的加载方式,可选...
mybatis 学习记录(4.2)—— 级联查询(有 association 和 collection)
版权声明:版权声明:尊重他人劳动成果,转载请注明出处: http://blog.csdn.net/czd3355/article/details/725996811. 项目介绍本文主要介绍在级联操作中 association,collection 的使用。如果对最基本的级联操作还不是很了解的话,可以参考这篇文章。mybatis 学习记录(4.1)—— 级联操作(无 association 和 co
Mybatis xml中配置一对一关系association&一对多关系collection
Mybatis xml中配置一对一关系association&amp;amp;一对多关系collection 今天在配置一对一关系映射以及一对多关系映射的时候,把collection中应该使用的ofType配置成了javaType。并且没有及时发现错误,浪费了很多时间去查找此配置问题,特此记一笔。 &amp;lt;resultMap id=&quot;deviceMap&quot; type=&quot;com.cloud.model.i...
Mybatis的分段查询association和collection(对象属性是另一个对象)
联合查询 :级联属性封装结果集 就是 对象中有个属性也是对象 方法1:传统方法 &amp;amp;lt;mapper namespace=&amp;quot;dao.TeacherMapperPlus&amp;quot;&amp;amp;gt; &amp;amp;lt;resultMap type=&amp;quot;entity.Teacher&amp;quot; id=&amp;quot;Teacher&amp;quot;&amp;amp;gt; &amp;amp;lt;id c
Mybatis中一对多(collection)和一对一(association)的组合查询用法
Collection collection : 一个复杂的类型关联,许多结果将映射为这种类型 property : 这是关联的 JavaBean 中的属性名, 在 RoleModel 中对应 private List&amp;amp;amp;amp;amp;lt;MenuModel&amp;amp;amp;amp;amp;gt; menus; javaType : property 属性对应的集合类型 ofType : property 集合中的泛型,即定义时泛型所表示的具体...
association和collection存在时,对映射结果的影响。
图一 图二 出现以上问题的原因: 当没有 association或者collection时,autoMappingBehavior在默认情况下(PARTIAL),若是普通数据类型的属性,会自动匹配所有,但是若是有内部嵌套(association或者collection),那么输出结果就是null,也就是说它不会自动匹配,除非手动设置autoMappingBehavior的value为...
Mybatis最入门---ResultMaps高级用法(上)
[一步是咫尺,一步即天涯] 接上文,我们基本的单表查询使用上文中的方式已经能够达到目的。但是,我们日常的业务中也存在着多表关联查询,结果是复杂的数据集合等等。本文我们就来介绍ResultMaps的高级用法,本文,我们先介绍基本的概念,具体用法实例在下一篇中专门演示给大家。敬请期待 ---------------------------------------------------------
使用columnPrefix别名区分所属哪个类的字段
今天在写一个关联表查询的时候出现的几个问题。 需要查出这个订单的所有状态,属于一对多的关系 //这个为查询的语句 "selectOrderByMap" parameterType="java.lang.String" resultMap="OrderLinkAudit"> select ord.id,ord.ser_title,ord.org_name,ord
Mybatis 只返回一条数据的解决方案 之association、collection
Mybatis中有一个结果集映射map-&amp;gt;resultMapresultMap中有association和collectionassociation是一对一或者多对一,collection是一对多为了方便理解,我用了两个类测试,一个是StudentC,一个ClassS:学生类StudentC:public class StudentC { private Long sid; ...
MyBatis级联第五篇——树形加载规则和非全局性加载,延迟加载原理(推荐,继续上篇的重要原创)
到了级联最后的章节,希望大家hold住。我们上面讨论了加载的情况,但是还是比较模糊。这里我们再升华为理论知识。 1、树形层级加载: 上篇,我们将全局参数变为: 我们发现其延迟加载规则,貌似不可触摸,于是大家都很懵懂,不过不要紧我们我们回到第一篇 MyBatis级联探讨第一篇——概念和模型 的模型图,我们可以得到这样的一张树形图: 有了这个图,这样
myBatis中 collection 或 association 联合查询 中column 传入多个参数值
下面是一个树形结构表自连接 联合查询 Demo &amp;lt;resultMap id=&quot;BaseResultMap&quot;  type=&quot;com.maidan.daas.entity.AccoSysmanResource&quot; &amp;gt;    &amp;lt;id column=&quot;pid&quot; property=&quot;pid&quot; jdbcType=&quot;INTEGER&quot; /&amp;gt;    &amp;lt;resu
关于mybatis中<collection>不执行的其中一种情况
问题 我在mapper中写&amp;lt;collection/&amp;gt; 作联合查询的时候,返回的结果里没有联合查询的数据。使用debug在控制台把sql语句打印出来后,发现根本没有执行联合查询对应的sql语句。 代码 先试result的代码 &amp;lt;resultMap type=&quot;com.mytest.domain.ActivityRecord&quot; id=&quot;baseactivityRecord...
Mybatis_3 1对多对多 多层查询 association 与 collection 案例演示
//pojo public class AProjectVo extends AProject {     private AProjectDetail aProjectDetail; //project : projectdetail = 1:1     private List&amp;lt;AEngVo&amp;gt; eListVo;//project : eng = 1:n      public cl...
mybatis的association运用过程中遇到的一些问题
今天,我通过了junit测试,不断地改进自己的代码,在这过程中吧,我遇到一个问题就是,查询数据时没有和我的预期相同,就是在我的预想中结果是[main] INFO com.qiping.model.Student - OK Student [id=6, name=李四, age=11, address=Address [id=6, sheng=ss, shi=ss, qu=ss]]但是出现了一个问题...
自己对于mybatis的association的理解
这个select只要那个sql的参数的类型相同就好,不需要名称也一样
MyBatis-关联表增删改查配置、resultMap、association、collection的使用
相关代码参考: MyBatis-搭建MyBatis开发环境一(MyEclipse版)1、数据库表信息实体类代码1、Deptpublic class Dept { private Integer deptno; private String dname; private String loc; //get set方法略 }2、Emppublic class Emp {
【笔记】Mybatis高级查询(五)--使用resultMap的<collection>进行嵌套查询及延迟加载
下面例子通过&amp;amp;amp;lt;collection&amp;amp;amp;gt;实现一个通过用户编号查询用户下面的角色及权限的需求,支持延迟加载。下面以自下而上的过程来实现这样的嵌套查询功能。并且这个自下而上的过程中每一个方法都是独立可用的方法。上层的结果都以下层方法为基础。所有对象都设置为延迟加载。 在最底层权限表sys_privilege的映射文件SysPrivilegeMapper.xml中添加selectPriBy...
Mybatis 关联查询 collection 效率 分析
背景: 有一张评议人表(e_evaluator),一张参评企业表(attend_enterprise_info),一张评议人和参评企业关系表(er_evaluator_attend_enterprise),关系如下图    目前e_evaluator表中有3800条数据,attend_enterprise_info表中有130条数据,er_evaluator_attend_enterpri...
mybatis中mapper文件resultMap中collection和association的使用
mybatis中mapper文件resultMap中collection和association的使用,参考地址:https://blog.csdn.net/zhizhuodewo6/article/details/82863452
MyBatis使用 resultMap的association 标签实现懒加载
首先 , 做好初始化工作 ,  建立三张表 , sys_user ,sys_role ,sys_user_role , 建表语句如下 CREATE TABLE `sys_user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id', `user_name` varchar(64) DEFAULT NULL COMMENT '用户...
myBatis一对多,多对一,<collection>,<association>等元素注意项
myBatis建立双向一对多,单向一对多,,等元素注意项 项目中用myBatis+springMvc做后台数据字典,像这种后台数据量也不大,就没整那一对多关系。毕竟代码如浪女,没事不去勾引她。功能实现后闲着无聊就研究了下用mybatis建立一对多关系,发现还是有很多值得注意的地方。这玩意,既然勾引了,就不能随便完事,必须略深刻研究,以达到下次随心所欲的蹂躏她的水准。浮夸的年代,也许给我们codi
mybitis利用association 实现延迟加载
1      延迟加载 1.1  什么是延迟加载 高级映射:对查询结果有特殊要求的 resultMap可以实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需
mybatis association 懒加载实现原理
前言mybatis的association 标签可以设置关联对象,加载方式;如下的user关联dept,加载方式fetchType=”eager” <resultMap id="BaseResultMap" type="testmaven.entity.User"> <id column="id" jdbcType="INTEGER" property="id" /> <result
mybatis Association标签 column属性应对多值的情况
Association元素 Association元素处理“has-one”(一对一)这种类型关系。比如在我们的例子中,一个Blog有一个Author。联合映射与其它的结果集映射工作方式差不多,指定property、column、javaType(通常MyBatis会自动识别)、jdbcType(如果需要)、typeHandler。 不同的地方是您需要告诉MyBatis 如何加
mybatis association会出现覆盖记录 导致只返回最后一条记录
开始封装的返回类:  package com.mpn.dto; import com.mpn.model.TUser; public class TUserDto { /* * 角色 */ private TUser tUser; /** 角色名称*/ private String roleName; public String getRoleName()...
MyBatis_association分步查询&延迟加载
既然我们有一个Department表,那么我们应该也要有一个接口DepartmentMapper.java去操作它 里面可以写各种方法 package com.atguigu.mybatis.dao; import com.atguigu.mybatis.bean.Department; public interface DepartmentMapper { public Dep...
解决mybatis中字段重名的问题尝试和总结
1.多表查询时,当列id重名时,mybatis会默认使用查询出的第一个id列(另一个列被覆盖),为了区分同名的列,给列取一个别名。取完别名后要到对应的colume中也要做出修改。 2.当对查询出来的数据有疑惑时,可以复制sql语句到navicat中查询,与真正的结果比较,因为mybatis的查询机制可能会不同,除非自己封装框架。以后遇到sql语句问题也一样。 3.还有的就是如果在配置文件中(xm
Mybatis查询之Association和Collection的区别和使用时机方式(代码讲解)
如存在问题 或有更好建议 请联系作者QQ:2940500 本文使用商城系统订单模块讲解 需要注意的地方使用红字指出 =========================正-文-分-割-线============================ 2019-03-04 补充: 在一对多的情况下 返回的数据是带有重复的 但是封装的时候不会有重复数据 比如 一个订单 拥有多个子订单 我们根...
解决mybatis中resultMap丢失查询结果,association“错误”去除重复数据的问题
    &amp;lt;resultMap id=&quot;commissionRec&quot; type=&quot;CommissionRec&quot; &amp;gt;         &amp;lt;result property=&quot;sourceName&quot; column=&quot;cmr_sourceName&quot;/&amp;gt;         &amp;lt;result property=&quot;totalMoney&quot; column=&quot
mybatis多层嵌套高级映射
mybatis使用association的resultMap方式进行映射少数据问题
在第一次使用mybatis的复杂映射的时候发现映射出来的对象的数量和那sql直接去库里面查的数量要少。 public class Blog { private int id; private String title; private String content; public int getId() { return id; } p
Mybatis 只使用了association时,结果只出一条
类的成员变量只有两个复杂对象,没有指定ID.  因此在resultmap中 我就没有指定。结果只返回一条数据。 这里将其中一个对象的id指定为即可。(根据需求。) 参考 http://bbs.csdn.net/topics/390999744 6楼。
mybatis 两个表 字段名称相同 数据被覆盖
&amp;lt;association property=&quot;epojo&quot;  javaType=&quot; &quot; column=&quot;ebpojo&quot;&amp;gt;         &amp;lt;result property=&quot;id&quot; column=&quot;uid&quot;/&amp;gt;         &amp;lt;result property=&quot;state&quot; column=&quot;state&quo
MyBatis-结果映射association标签的使用
association标签的部分说明 可参考的DTD规范 &amp;lt;!ELEMENT association (constructor?,id*,result*,association*,collection*, discriminator?)&amp;gt; &amp;lt;!ATTLIST association property CDATA #REQUIRED column CDATA #...
Mybatis中使用Association元素进行一对一级联查询
Association元素处理“一对一”类型映射关系,例如,查询有员工所对应的部门,它需要指定column、property、javaType、jdbcType等属性,如下: javabean字段"/> Association元素属性: 1.数据表 t_dept: t_user: 2.employe.java package co
MyBatis学习五:延迟加载
一、什么是延迟加载 resultMap可实现高级映射(使用association、collection实现一对一及一对多映射),association、collection具备延迟加载功能。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载:先从单表查询,需要时再从关联表去关联
java SSM第三章学习内容(mybatis-resultMap映射,association一对一,collection一对多)
学习内容: resultMap映射 association一对一 collection一对多一.resultMap映射 用途:将结果集映射到java对象中,把需要映射的属性和类型填入其中select:id  里面的内容名字,必须跟接口方法名一致resultMap   里面的可以自定义名字,到时调用resultMap必须跟自定义的名称一样parameterType  参数类型,例如你是放int就填i...
Mybatis的注解应用之关系映射
我们可以应用内联的或运用@Resuts注解来映射查询的结果。让我们看一下如何运用@Results注解来执行SELECT查询。 package com.owen.mybatis.mappers; public interface StudentMapper { @Select("SELECT * FROM STUDENTS") @Results({ @Result(id=true, column=
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 高级产品经理 python培训高级