mall学习笔记(4)

Posted on 2023-05-12 17:35  Capterlliar  阅读(15)  评论(0编辑  收藏  举报

今天来抄添加属性的功能,看了看在productService里。

1. @Transactional

@Transactional注解在代码执行出错的时候能够进行事务的回滚。

只能用于public方法,并且被另一个内部函数调用时不生效。

2. @Data

Lombok注解之一。

Lombok中关于@Data的使用

2. 先获取属性列表和商品列表

3. Mybatis updateByPrimaryKeySelective的使用

selective就是没填的字段不更新,而不是改成null

4. Java反射(java.lang.reflect)

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 压缩自增长