Mybatis 复杂对象resultMap

数据对象含有普通属性,一对一对象,一对多对象(2种情况:单一主键和复合主键)

下面是resultMap的定义:

 
        
        
        
        
        
        
        
        
        
		
			
			
			
		
		
		
       		
			
			
		
		
			
			
			
		
    
    
        
        
        
        
        
        
    

普通属性省略说明
一对一属性productioncompany
一对多属性goodsnutrientList(复合主键,返回的复杂对象内有数据)
一对多属性liquorgoodsccicList(复合主键,返回的复杂对象内没有数据)
一对多属性projectgoodsList(单一主键,返回的复杂对象内有数据)

select相关配置 :

    
    
   
   

通过findByPrimaryKey方法获取普通属性和1对1对象属性
通过getGoodsnutrient方法获取1对多复合主键的属性,注意返回类型的配置为resultMap=“GoodsnutrientResultMap”(返回的对象的List属性内有数据)
通过getLiquorgoodsccic方法获取1对多复合主键的属性,此处的返回类型为 resultType=“trade.db.model.Liquorgoodsccic”(返回的对象的List属性内没有数据)
通过getProjectgoods方法获取1对多单一主键的属性,此处的返回类型为resultType=“trade.db.model.Projectgoods”(返回的对象的List属性内有数据)

Model代码:

public class GoodsModelCustomize extends Goods {
	/**
	 * 製造会社
	 */
	private Productioncompany productioncompany;
	public Productioncompany getProductioncompany() {
		return productioncompany;
	}
	public void setProductioncompany(Productioncompany productioncompany) {
		this.productioncompany = productioncompany;
	}

	/**
	 * 商品栄養成分
	 */
	private List goodsnutrientList;
	public List getGoodsnutrientList() {
		return goodsnutrientList;
	}
	public void setGoodsnutrientList(List goodsnutrientList) {
		this.goodsnutrientList = goodsnutrientList;
	}

	/**
	 * 酒類商品CCIC
	 */
	private List liquorgoodsccicList;
	public List getLiquorgoodsccicList() {
		return liquorgoodsccicList;
	}
	public void setLiquorgoodsccicList(List liquorgoodsccicList) {
		this.liquorgoodsccicList = liquorgoodsccicList;
	}

	/**
	 * 项目商品列表
	 */
	private List projectgoodsList;
	public List getProjectgoodsList() {
		return projectgoodsList;
	}
	public void setProjectgoodsList(List projectgoodsList) {
		this.projectgoodsList = projectgoodsList;
	}
}

普通属性继承与Goods代码省略,上述属性productioncompany,goodsnutrientList和projectgoodsList有数据,但是liquorgoodsccicList没有数据

因此,当返回对象内有1对多的List属性,同时此list为复合主键的话,推荐使用resultMap来对返回数据映射。

你可能感兴趣的:(Mybatis 复杂对象resultMap)