Mybatis 的foreach 能够嵌套吗?


  1. http://code.google.com/p/mybatis/source/browse/trunk/src/test/java/org/apache/ibatis/submitted/nested/?r=3467  
  2.   
  3. Junit Test  
  4. NestedForEachTest.java  
  5. NestedForEach.xml  


照着这个效果,我在本身的paohe项目xml中这样写java

<select id="queryQualityCost" parameterType="com.itonghui.biz.qualityclient.model.QualityClient" resultMap="BaseResultMap">
SELECT 
<include refid="Base_Column_List" />
FROM spot_quality_cost
      WHERE QUALITY_COST_ID IN
<foreach collection="qualitySampleinfoList" item="qualitySampleinfo" open="(" separator="," close=")"  >
<foreach collection="qualitySampleinfo.qualityVarietyList" item="qualityVariety" separator="," >
#{qualityVariety.qualityCostId}
    </foreach>
</foreach>
</select>
sql

java代码:apache

QualityClientServiceImpl.java:mybatis

QualityClient qualityClient = new QualityClient();
qualityClient.setQualitySampleinfoList(sampleInfoListTmp);
List<QualityCost> qualityCostList = qualityCostMapper.queryQualityCost(qualityClient); //获取最新的检测项费用
app


其中QualityClient.java   vo类有 private List<QualitySampleinfo> qualitySampleinfoList; //样品列表,ui

QualitySampleinfo.java vo类有 private List<QualityVariety> qualityVariety;
google


最终sql效果是spa

 SELECT QUALITY_COST_ID, QUALITY_DESC_ID, QUALITY_CHECK_ID, INSPECT_ORGANIZATION
_ID, TESTING_COST, CHECK_TYPE, IS_STANDARD_SAMPLE, REMARK, ALIVE_FLAG FROM spot_quality_cost WHERE QUALITY_COS
T_ID IN ( ? , ? , ? , ? , ? , ? ) 
code


mybatis多个foreach嵌套查询成功!xml