10.品牌分類關聯與級聯更新
阿新 • • 發佈:2022-03-06
一、引入分頁外掛
@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 更新其他關聯
}
}