【商城项目18】冗余同步更新

【商城项目18】冗余同步更新

什么是冗余更新?

多对多的时候,尽量不连表查询,在新增时候直接查询出相关信息进行写入。

image-20200611130417043

问题来了。如果更新了brand表或者catelog表怎么办呢?

解决办法:在更新brand表或者catelog表时顺便更新一下冗余表。

拿brand举例:

update时传入新的brand,交给service层

   @RequestMapping("/update")
    public R update(@Validated({UpdateGroup.class}) @RequestBody BrandEntity brand) {
        brandService.updateDetail(brand);
        return R.ok();
    }

sevice层就先更新自己这张brand表,然后把数据交给冗余表的服务层:

    @Override
    public void updateDetail(BrandEntity brand) {
        this.updateById(brand);
        if(!StringUtils.isEmpty(brand.getName())){
            //关联其他表的数据
            categoryBrandRelationService.updatebrandname(brand.getBrandId(),brand.getName());
        }
    }

categoryBrandRelationService冗余表的服务层先生成一个对象,然后this.update通过UpdateWrapper有条件的进行更新。

   @Override
    public void updatebrandname(Long brandId, String name) {
        CategoryBrandRelationEntity categoryBrandRelationEntity = new CategoryBrandRelationEntity();
        categoryBrandRelationEntity.setBrandId(brandId);
        categoryBrandRelationEntity.setBrandName(name);
        this.update(categoryBrandRelationEntity,new UpdateWrapper<CategoryBrandRelationEntity>().eq("brand_id",brandId));
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值