`

Ibatis一对多的延迟加载应用

    博客分类:
  • Java
阅读更多

我们的应用之中有一个一对多的情况 :

 

一个批发产品对应3条批发价格信息

 

于是model 结构 ; 

 

public class ProductVo implements Serializable {


    private List<WholesaleRange> wholeRageList;       //价格信息集合

    public List<WholesaleRange> getWholeRageList() {
        return wholeRageList;
    }

    public void setWholeRageList(List<WholesaleRange> wholeRageList) {
        this.wholeRageList = wholeRageList;
    }


}

 

如何查询批发信息的时候直接带出附加的价格信息集合呢 ?

 

SQLMAP 如下构建:

 

<typeAlias alias="wholesaleprd" type="com.woyo.business.wholesale.domain.model.ProductVo" />

  <resultMap id="wholesalePriceRageMap" class="wholesaleprd" >
    <result column="id" property="id" jdbcType="VARCHAR" />
    <result column="title" property="title" jdbcType="VARCHAR" />
    <result column="is_mixed_batch" property="mixedBatch" nullValue="0" />
    <result column="id" property="wholeRageList" select="getWholeRageList"/>
  </resultMap>



<select id="getWholeRageList" resultClass="wholesaleRage" parameterClass="long">
    select id as id , whilesale_id as whilesaleId , quantity as quantity , price as price from wholesale_range where whilesale_id = #value# order by quantity
</select>



 <select id="getWholeSaleById" resultMap="wholesalePriceRageMap" parameterClass="long">
    SELECT w.id as id ,w.title as title, p.id as prdId,p.product_name AS prdName ,p.count - w.order_amount AS balance_amount ,
    p.price AS price, p.image_url AS imageUrl, w.supplier_name, w.supplier_tel, w.wholesale_amount,
    w.wholesale_price, w.team_price, w.team_save, w.order_amount, w.team_amount ,w.is_mixed_batch
    FROM wholesale w left join  product  p on w.product_id = p.id
    
    where w.id = #value#
 </select>

 

 

这样, 查询出的对象, Ibatis 会用延迟加载的策略来得到 wholeRageList 

 

 

分享到:
评论

相关推荐

    iBATIS实战

    书中既详实地介绍了iBATIS的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...

    ibatis开发指南

    ibatis的高级特性 数据关联 一对多关系 一对一关系 延迟加载 动态加载 事务管理

    ibatis2.x 详细介绍

    一对多关联............................................................................................ 26 一对一关联......................................................................................

    ibatis开发指南_夏昕

    一对多关联............................................................................................26 一对一关联........................................................................................

    ibatis开发指南中文版

    一对多关联............................................................................................26 一对一关联........................................................................................

    ibatis 开发指南(pdf)

    26 一对多关联............................................................................................ 26 一对一关联...........................................................................

    ibatis入门教程

    一对多关联............................................................................................ 26 一对一关联......................................................................................

    mybatis_day01.docx

    增加了程序员的一些操作,但是带来了设计上的灵活,并且也是支持hibernate的一些特性,如延迟加载,缓存和映射等;对数据库的兼容性比hibernate差。移植性不好,但是可编写灵活和高性能的sql语句。

    Spring面试题

    1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多集合使用Set 6. 继承类使用显式多态 7. 表字段要少,表...

    深入浅出Hibernate(PDF)第二部分

    从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate...

    Spring中文帮助文档

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

    Spring API

    6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点运算 7.2.3. AspectJ切入点表达式 7.2.4. 便利的切入...

Global site tag (gtag.js) - Google Analytics