Hi,
To confirm the solution:
I have a scenario where I have a @OneToMany relationship (on object Partenaire) without the REMOVE cascade linked with @ManyToOne (on object ConventionPartenaire).
When I delete object Partenaire, it then tells me that it’s not possible to save object ConventionPartenaire because it holds a transient object (which is normal).
Is the solution to set the return variable to null by removing the association from ConventionPartenaire to Partenaire (@PreRemove) ?
Thank you !
@Entity
public class Partenaire {
@OneToMany(mappedBy = "partenaire", fetch = EAGER, cascade = {REFRESH, PERSIST})
private Set<ConventionPartenaire> conventions = new HashSet<>();
@PreRemove
public void preRemove() {
conventions.forEach(this::removeFromConventions);
}
public boolean removeFromConventions(ConventionPartenaire conventionPartenaire) {
conventionPartenaire.setPartenaire(null);
return conventions.remove(conventionPartenaire);
}
}
@Entity
public class ConventionPartenaire {
@ManyToOne
private Partenaire partenaire;
}