Cześć, sprawa wygląda tak: mam dwie encje - User i Event, gdzie w klasie Event mam referencję do listy Userów:
class Event {
//
@ManyToMany
private List<User> users = new ArrayList();
//
}
Napisałem sobie w serwisie metodę do dodawania Userów do danego Eventu, ale widzę, że idzie mi tu aż 5 zapytań SQL co wydaje mi się wysoce nieoptymalne. Oto kod:
@Override
public Event addUserToEvent(String email, long id) {
User user = usersService.getUserByMail(email);
Event event = getEventWithId(id);
if(isUserParticipantOfEvent(user, event)) return event;
event.getUsers().add(user);
return eventsDAO.save(event);
}
private boolean isUserParticipantOfEvent(User user, Event event) {
for(User u : event.getUsers()) {
if(u.getId() == user.getId()) {
return true;
}
}
return false;
}
Myślałem o jakiś customowych query może, ale to mój pierwszy projekt w Springu i jeszcze troszkę po omacku się poruszam.