1、controller取路径参数(@PathVariable和@Param老是弄混),将结果通过Model 返回给前端
@GetMapping("/{skuId}.html")
public String skuItem(@PathVariable("skuId") Long skuId,Model model){
SkuItemVo item = skuInfoService.item(skuId);
model.addAttribute(item);
return "item";
}
2、mybatis返回集合里元素类型有嵌套属性,需要封装自定义集合用于嵌套使用的集合,例如下块代码:
<resultMap id="spuItemAttrGroupVo" type="com.gewenbo.product.vo.SpuItemAttrGroupVo">
<result property="groupName" column="attr_group_name"/>
<collection property="attrs" ofType="com.gewenbo.product.vo.Attr">
<result property="attrName" column="attr_name"/>
<result property="attrValue" column="attr_value"/>
</collection>
</resultMap>
3、mysql分组,值组合方法GROUP_CONCAT,先分组再将值组合
select
ssav.attr_id as attr_id,
ssav.attr_name as attr_name,
GROUP_CONCAT(DISTINCT ssav.attr_value) as attr_value
from pms_sku_info as info
left join pms_sku_sale_attr_value as ssav on ssav.sku_id = info.sku_id
where info.spu_id = 13
group by ssav.attr_id,ssav.attr_name