Ich habe 2 Klassen: Benutzer und Firma.Wie Null auf Fremdschlüssel Spalte in OneToMany-Beziehung, Hibernate
Ich brauche, wenn ich Firma löschen, um den Fremdschlüssel company_id als Null in User-Tabelle zu setzen. Wie könnte ich das tun?
Ich habe 2 Klassen: Benutzer und Firma.Wie Null auf Fremdschlüssel Spalte in OneToMany-Beziehung, Hibernate
Ich brauche, wenn ich Firma löschen, um den Fremdschlüssel company_id als Null in User-Tabelle zu setzen. Wie könnte ich das tun?
Normalerweise wird die Beziehung, die Sie beschreiben, mit einem constraint
für den Fremdschlüssel erstellt, der auf die User
Entität verweist. Dies ist so, dass Sie es nicht auf null
einstellen können. Wenn Sie es auf null setzen, wird daraus eine orphaned
Zeile, die für eine fehlerhafte Datenbank sorgt.
Wenn die beiden Entitäten andererseits getrennt von ihren Joins beibehalten werden müssen, ist Ihre Beziehung nicht so, wie Sie sie beschreiben.
Es scheint, dass in diesem Fall Firmen und Benutzer (Personen?) Beide existieren müssen, ohne notwendigerweise verbunden zu werden. Ich würde eine neue Entität vorschlagen, so etwas wie Employment
. Es würde effektiv als join table
in dem Sinne fungieren, dass es sowohl Company
als auch User
IDs hat, aber es könnte auch mehr Informationen wie startdate
, enddate
, und current employer
haben.
user.setCompany (null); Company.getEmployees(). Remove (emp); ? –
Ich denke, das könnte CascadeType oder etw. Ich weiß nicht wie. –
es hat "etwas mit CascadeType zu tun", wenn Sie die Löschung kaskadieren möchten, aber dann bedenken Sie, dass Ihre Frage nicht erwähnt, dies zu tun, dann nicht –