Tengo dos clases, por ejemplo Grupo y Persona con una relación ManyToMany que está mapeada en una JoinTable.JPA/Hibernar: relación Eliminar ManyToMany
Si elimino una Persona que tiene una relación con un Grupo, quiero eliminar la entrada de la tabla de unión (¡no eliminar el grupo mismo!).
¿Cómo debo definir las anotaciones en cascada? No me encontré con una documentación muy útil, pero varias discusiones de mesa sin resolver ...
public class Group {
@ManyToMany(
cascade = { javax.persistence.CascadeType.? },
fetch = FetchType.EAGER)
@Cascade({CascadeType.?})
@JoinTable(name = "PERSON_GROUP",
joinColumns = { @JoinColumn(name = "GROUP_ID") },
inverseJoinColumns = { @JoinColumn(name = "PERSON_ID") })
private List<Person> persons;
}
public class Person {
@ManyToMany(
cascade = { javax.persistence.CascadeType.? },
fetch = FetchType.EAGER,
mappedBy = "persons",
targetEntity = Group.class)
@Cascade({CascadeType.?})
private List<Group> group;
}
Quiero eliminar la asociación automáticamente al eliminar un objeto de persona. Mi intención es no tener que hacer esto manualmente. Si tengo que hacerlo, no necesito conectar en cascada. ¿O me salió mal la función de conexión en cascada? – tautologe
Tienes que hacerlo. La conexión en cascada no hace esto. –