需求:根据组合商品id列表,获取其下的关联的商品列表
mybatis代码:
<resultMap class="java.util.HashMap" id="ComboMap" groupBy="comboItemId">
<result column="COMBO_ITEM_ID" jdbcType="BIGINT" property="comboItemId" />
<result property="comboList" javaType="java.util.ArrayList" resultMap="ITEM_COMBO.comboResult" />
</resultMap>
<resultMap id="comboResult" class="com.plocc.shop.dao.vo.ItemComboVo">
<result column="ITEM_ID" jdbcType="BIGINT" property="itemId" />
<result column="SHOP_ID" jdbcType="BIGINT" property="shopId" />
<result column="COMBOPRICE" property="comboPrice" jdbcType="DECIMAL" />
<result column="ITEM_NAME" property="itemName" jdbcType="VARCHAR" />
<result column="SHOP_NAME" property="shopName" jdbcType="VARCHAR" />
<result column="LIST_PRICE" property="listPrice" jdbcType="DECIMAL" />
<result column="PL_PRICE" property="plPrice" jdbcType="DECIMAL" />
<result column="TYPE" property="type" jdbcType="CHAR" />
<result column="ITEM_NUM" jdbcType="INT" property="itemNum" />
<result column="PICTURE_PATH" property="picturePath" jdbcType="VARCHAR" />
</resultMap>
<!-- 根据组合商品id列表,获取其下的关联的商品列表 -->
<select id="getItemComboListByItemComboIds" resultMap="ComboMap" parameterClass="list" >
SELECT
IT.ID ITEM_ID,
IT.ITEM_NAME,
IT.LIST_PRICE,
IT.PL_PRICE,
IT.TYPE,
IT.SHOP_ID,
IC.COMBOPRICE,
IC.ITEM_NUM,
IC.COMBO_ITEM_ID,
IPC.PICTURE_PATH,
S.SHOP_NAME
FROM ITEM IT
RIGHT JOIN ITEM_COMBO IC
ON (IT.ID = IC.ITEM_ID AND IC.IS_DEL='0' AND IC.COMBO_ITEM_ID in
<iterate open="(" close=")" conjunction="," >
#[]#
</iterate>
)
LEFT JOIN ITEM_PICTURE AS IPC
ON IT.ITEM_GROUP_ID = IPC.ITEM_GROUP_ID AND IPC.TYPE='1' AND IPC.IS_DEL='0'
LEFT JOIN SHOP S on IT.SHOP_ID = S.ID
WHERE IT.IS_DEL='0' AND IT.STAT='1' ORDER BY IC.COMBO_ITEM_ID
</select>
java代码:
@Override
public HashMap<Long, List<ItemComboVo>> getItemComboListByItemComboIds(
List<Long> itemComboIds) throws DataAccessException {
return (HashMap<Long, List<ItemComboVo>>)sqlMapClient.queryForMap("ITEM_COMBO.getItemComboListByItemComboIds", itemComboIds, "comboItemId","comboList");
}