Como remover entidade com ManyToMany relacionamento em JPA (e correspondentes linhas da tabela de junção)?

Digamos que eu tenha duas entidades: Grupo e Usuário. Cada usuário pode ser membro de vários grupos e cada grupo pode ter muitos usuários.

@Entity
public class User {
    @ManyToMany
    Set<Group> groups;
    //...
}

@Entity
public class Group {
    @ManyToMany(mappedBy="groups")
    Set<User> users;
    //...
}

Agora eu quero remover um grupo (digamos que tenha muitos membros).

O problema é que quando eu chamo EntityManager.remove () em algum grupo, provedor JPA (no meu caso Hibernate)não remove linhas da tabela de junção e a operação de exclusão falha devido a restrições de chave estrangeira. Chamando remove () on User funciona bem (eu acho que isso tem algo a ver com possuir lado do relacionamento).

Então, como posso remover um grupo neste caso?

A única maneira que eu poderia fazer é carregar todos os usuários do grupo, então, para cada usuário, remover o grupo atual de seus grupos e atualizar o usuário. Mas parece ridículo para mim chamar update () em todos os usuários do grupo apenas para poder excluir este grupo.

questionAnswers(8)

yourAnswerToTheQuestion