Ich habe Dokumente, die von anderen Dokumenten referenziert werden. Ich speichere diese Verbindung in der Entität.JPA - Löschen von Elementen aus @ManyToMany self
@Entity
public class Document extends AbstractEntity {
@ManyToMany(cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
@JoinTable(name = "DREF", joinColumns =
@JoinColumn(name = "DOCID", referencedColumnName="ID"), inverseJoinColumns =
@JoinColumn(name = "REFBYDOCID", referencedColumnName="ID"))
private Set<Document> referencedBy = new HashSet<Document>();
}
Aber ich habe Probleme, wenn ich versuche zu löschen.
Zum Beispiel: Wenn Doc1 von Doc2 referenziert wird, kann ich Doc2 nicht löschen.
Dazu muss ich Doc2 aus den anderen Dokumenten referenziertenBy Sets entfernen. Aber ich kann die Referenz dieser Dokumente von Doc2 nicht bekommen.
1) Ich habe versucht, eine Methode zu schreiben, um die Referenzen zu bekommen, aber ich konnte es nicht tun.
2) Ich habe versucht, die referenzierten Dokumente zu speichern, aber es war eine Sackgasse.
Wie soll ich das tun?