Предположим, у нас есть Группа -> Участник (ManyToMany)
С данным набором Участника - какой самый практичный способ определить, была ли Группа создана именно для этих участников?(Нет дополнительных или отсутствующих членов)
Это кажется неправильным, потому что кажется, что группа определяется ее состоянием, но система требует, чтобы у нас была только одна группа для определенной комбинации членов (включая порядок!)
Редактировать:
Я ищу способ сделать это с помощью JPA - поэтому Set.retainAll, похоже, не применяется.
Я говорю следующее:это было бы идеально:
List<Member> members;
... // members gets assigned
TypedQuery<Group> query = entityManager.createQuery("select g from Group g where g.members = ?", Group.class)
query.setParameter(1, members);
Group group = query.getSingleResult();
Конечно, это не так.Рассмотрим худшую реализацию
List<Group> groups = entityManager.createQuery("select g from Group g", Group.class).getResultList();
for (Group g: groups) {
if (g.getMembers().equals(members)) {
return g;
}
}
Где-то между этими двумя должно быть что-то, чего мне не хватает.