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 更新其他关联
}
}
标签:10,级联,brand,paginationInterceptor,categoryBrandRelation,关联,key,getName,public 来源: https://www.cnblogs.com/55zjc/p/15971061.html