BuildingDao building = new BuildingDao();
List<Object[]> result = entityManager.createNativeQuery("SELECT a.id_apartment,a.floor,a.direction,a.sell_price,a.`status`,a.`name` from tbl_apartment a,tbl_project p,tbl_sector s,tbl_building b where a.id_building=b.id_building and b.id_sector=s.id_sector and p.id_project=s.id_project and p.id_project=:idProject and s.id_sector=:idSector and b.id_building=:idBuilding ORDER BY a.floor").setParameter("idProject", idProject).setParameter("idSector", idSector).setParameter("idBuilding", idBuilding).getResultList();
List<Apartment> list = new ArrayList<>();
for (Object[] obj : result) {
Apartment apartment = new Apartment();
apartment.setIdApartment(Integer.parseInt(obj[0].toString()));
apartment.setFloor(String.valueOf(obj[1]));
apartment.setDirection(String.valueOf(obj[2]));
apartment.setSellPrice(String.valueOf(obj[3]));
apartment.setStatus(Integer.parseInt(obj[4].toString()));
apartment.setName(String.valueOf(obj[5]));
list.add(apartment);
}
Map<String, Map<String, List<Apartment>>> sult=list.stream().collect(groupingBy(Apartment::getDirection, groupingBy(Apartment::getFloor)));
List<String> direction=new ArrayList<>(sult.keySet());
building.setDirections(direction);
System.out.println(direction);
đây là tất cả những gì e đã làm để lấy được ra thế kia