我们的应用之中有一个一对多的情况 :
一个批发产品对应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的设计理念和基础知识,也讨论了动态SQL、高速缓存、DAD框架等高级主题,还讲解了iBATIS在实际开发中的应用。书的最后给出了一个设计优雅、层次清晰的示例程序JGameStore,该示例涵盖全书的...
ibatis的高级特性 数据关联 一对多关系 一对一关系 延迟加载 动态加载 事务管理
一对多关联............................................................................................ 26 一对一关联......................................................................................
一对多关联............................................................................................26 一对一关联........................................................................................
一对多关联............................................................................................26 一对一关联........................................................................................
26 一对多关联............................................................................................ 26 一对一关联...........................................................................
一对多关联............................................................................................ 26 一对一关联......................................................................................
增加了程序员的一些操作,但是带来了设计上的灵活,并且也是支持hibernate的一些特性,如延迟加载,缓存和映射等;对数据库的兼容性比hibernate差。移植性不好,但是可编写灵活和高性能的sql语句。
1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多集合使用Set 6. 继承类使用显式多态 7. 表字段要少,表...
从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容深入浅出,先讲述持久层设计与ORM,再由Hibernate概述、Hibernate基础Hibernate高级特性顺序展开,直至Hibernate...
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. 便利的切入...
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. 便利的切入...