1.首先dao层
*继承JpaRepository和JpaSpecificationExecutor的接口
public interface DistrictRepositroy extends JpaRepository<District,Integer>, JpaSpecificationExecutor {
List<District> findByParent(Integer perent);
}
2.service层注入dao层 实现三级联动 代码如下:
@Autowired
DistrictRepositroy districtRepositroy;
@Override
public List findByParent() {
//返回结果
ArrayList provinceList = new ArrayList<>();
//一次从数据查询所有数据
List list = districtRepositroy.findAll();
//从list 查找省的数据
list.forEach(province->{
if(province.getParent()==1){
provinceList.add(province);
}
});
//遍历省 查询市所有数据
provinceList.forEach(province->{
//查找下面所有市
ArrayList cityList = new ArrayList<>();
list.forEach(city->{
if(city.getParent().intValue()==province.getId().intValue()){
cityList.add(city);
//查找市下面的所有区 county
ArrayList countyList = new ArrayList<>();
list.forEach(county->{
if(county.getParent().intValue()==city.getId().intValue()){
countyList.add(county);
}
});
//设置区
city.setList(countyList);
}
});
//设置市
province.setList(cityList);
});
return provinceList;
}
数据库结构
这样就通过jpa 实现三级联动