Bonjour,
Je souhaite avoir votre avis sur une fonction que j'ai faite.
J'ai une Entité Event qui contient une liste de Band qui elle même contient une liste de Member
Je dois filtrer une liste d'Event et ne renvoyé que ceux qui contiennent des Band ayant au moins un Membre portant le nom donné
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public List<Event> getFilteredEventsInJava(String query) { final List<Event> events = eventRepository.findAllBy().stream().filter(e -> e.getBands().stream().filter(b -> b.getMembers().stream().filter(m -> m.getName().contains(query)).count()>0).count()>0).collect(Collectors.toList()); if(StringUtils.isEmpty(query)) { return Collections.EMPTY_LIST; } return events; }
eventRepository.findAllBy() retourne tout les events de la BDD ensuite je filtre pour n'avoir que les event qui contiennent au moins un Band (count >0) contenant au moins un Member ayant le nom passé en paramètre (m -> m.getName().contains(query)).
Cette façon de faire me parait compliqué, en plus si une des liste est null j'ai peur qu'il y ait une exception de lancé.
Est-ce que vous avez une idée pour améliorer ce code?
Partager