¿Cómo eliminar una entidad con la relación ManyToMany en JPA (y las filas de la tabla de unión correspondientes)?

Digamos que tengo dos entidades: Grupo y Usuario. Cada usuario puede ser miembro de muchos grupos y cada grupo puede tener muchos usuarios.

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

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

Ahora quiero eliminar un grupo (digamos que tiene muchos miembros).

El problema es que cuando llamo a EntityManager.remove () en algún Grupo, proveedor de JPA (en mi caso, Hibernación)no elimina filas de la tabla de unión y la operación de eliminación falla debido a restricciones de clave externa. Llamar a remove () en Usuario funciona bien (supongo que esto tiene algo que ver con poseer el lado de la relación).

Entonces, ¿cómo puedo eliminar un grupo en este caso?

La única forma que se me ocurre es cargar a todos los usuarios del grupo, luego, para cada usuario, eliminar el grupo actual de sus grupos y actualizar el usuario. Pero me parece ridículo llamar a update () en cada usuario del grupo solo para poder eliminar este grupo.

Respuestas a la pregunta(8)

Su respuesta a la pregunta