今天来抄添加属性的功能,看了看在productService里。
1. @Transactional
@Transactional注解在代码执行出错的时候能够进行事务的回滚。
只能用于public方法,并且被另一个内部函数调用时不生效。
2. @Data
Lombok注解之一。
2. 先获取属性列表和商品列表
3. Mybatis updateByPrimaryKeySelective的使用
selective就是没填的字段不更新,而不是改成null
Method setId = item.getClass().getMethod("setId", Long.class);
setId.invoke(item, (Long) null);
看这两行代码,获取了运行中类的方法,然后抽象地执行一下
5. @Param
List<ProductAttrInfo> getProductAttrInfo(@Param("id") Long productCategoryId);
@Param是写到sql中的变量
6. 更新逻辑
先把product的属性更新一遍,至于product_attribute,先把原来的删了,然后添加新的。但这样感觉id会变得很大。算了就要应用的规模这个问题也不严重。而且这个id看起来也没用,到时候删掉也可以(
阅读材料:mysql自增id超大问题的排查与解决_mysql 压缩自增长