@Transactional @Override public void removeAll(User user, List<Company> companies, boolean propagate) throws ChouetteException { for (Company company : companies) { INeptuneManager<Line> lineManager = (INeptuneManager<Line>) getManager(Line.class); INeptuneManager<VehicleJourney> vjManager = (INeptuneManager<VehicleJourney>) getManager(VehicleJourney.class); Filter filter = Filter.getNewEqualsFilter("company.id", company.getId()); List<Line> lines = lineManager.getAll(user, filter); List<VehicleJourney> vehicleJourneys = vjManager.getAll(user, filter); if (propagate) { lineManager.removeAll(user, lines, propagate); vjManager.removeAll(user, vehicleJourneys, propagate); } else { for (Line line : lines) { line.setCompany(null); lineManager.update(user, line); } for (VehicleJourney vehicleJourney : vehicleJourneys) { vehicleJourney.setCompany(null); vjManager.update(user, vehicleJourney); } } } super.removeAll(user, companies, propagate); }