Witam, w skrócie mamy taką sytuację, że pobieram sobie z bazy 2 obiekty które są w relacji ze sobą (N:M).

Departament departament = departamentService.find(2L);
Person person = personService.find(6L);

Teraz chce usunąć z departament ten obiekt person wiec pobieram sobie kolekcje getem(zbiór) i korzystam z metody remove(object). Tylko tu jeżeli dobrze rozumiem to ona podczas usuwania sprawdza adres gdzie obiekt się znajduje a w rzeczywistosci w pamięci mamy 2 identyczne obiekty, jeden w kolekcji departament a drugi to bezposrednio pobrany z bazy(person) wiec obiekt z kolekcji nie zostanie usuniety. I teraz jak bym chciał usunąć powiązanie to musze iterowac po zbiorze w poszukiwaniu identycznego obiektu(equals czy tam po prostu po id) czy da się to zrobić inaczej?