1. 程式人生 > 其它 >10.品牌分類關聯與級聯更新

10.品牌分類關聯與級聯更新

一、引入分頁外掛

@Configuration
@EnableTransactionManagement        //開啟使用
@MapperScan("com.xunqi.gulimall.product.dao")
public class MyBatisConfig {

    //引入分頁外掛
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 設定請求的頁面大於最大頁後操作, true調回到首頁,false 繼續請求  預設false
        paginationInterceptor.setOverflow(true);
        // 設定最大單頁限制數量,預設 500 條,-1 不受限制
        paginationInterceptor.setLimit(1000);
        return paginationInterceptor;
    }

}

二、模糊查詢

  @Override
    public PageUtils queryPage(Map<String, Object> params) {

        //1、獲取key
        String key = (String) params.get("key");
        QueryWrapper<BrandEntity> queryWrapper = new QueryWrapper<>();
        //如果傳過來的資料不是空的,就進行多引數查詢
        if (!StringUtils.isEmpty(key)) {
            queryWrapper.eq("brand_id",key).or().like("name",key);
        }

        IPage<BrandEntity> page = this.page(
                new Query<BrandEntity>().getPage(params),
                queryWrapper
        );

        return new PageUtils(page);
    }

三、關聯分類

@Override
public void saveDetail(CategoryBrandRelationEntity categoryBrandRelation) {
    Long brandId = categoryBrandRelation.getBrandId();
    Long catelogId = categoryBrandRelation.getCatelogId();

    //1、查詢品牌詳細資訊
    BrandEntity brandEntity = brandDao.selectById(brandId);
    //2、查詢分類詳細資訊
    CategoryEntity categoryEntity = categoryDao.selectById(catelogId);

    //將資訊儲存到categoryBrandRelation中
    categoryBrandRelation.setBrandName(brandEntity.getName());
    categoryBrandRelation.setCatelogName(categoryEntity.getName());

    // 儲存到資料庫中
    this.baseMapper.insert(categoryBrandRelation);
}

四、級聯更新

@Transactional(rollbackFor = Exception.class)
@Override
public void updateDetail(BrandEntity brand) {
    //保證冗餘欄位的資料一致
    baseMapper.updateById(brand);

    if (!StringUtils.isEmpty(brand.getName())) {
        //同步更新其他關聯表中的資料
        categoryBrandRelationService.updateBrand(brand.getBrandId(),brand.getName());

        //TODO 更新其他關聯
    }
}