Ich habe versucht, das umgekehrte Attribut von Hibernate in den Griff zu bekommen, und es scheint nur eines dieser Dinge zu sein, die konzeptionell schwierig sind.
Das Wesentliche, das ich erhalte, ist, dass wenn Sie eine übergeordnete Entität (z. B. Parent) haben, die eine Sammlung von untergeordneten Objekten unter Verwendung einer Eins-zu-Viele- Zuordnung hat, die Einstellung inverse = true in der Zuordnung Hibernate mitteilt, dass die andere Seite (das untergeordnete Objekt) ) ist dafür verantwortlich, sich selbst zu aktualisieren, um die Fremdschlüsselreferenz in seiner Tabelle beizubehalten. “
Dies zu tun scheint zwei Vorteile zu haben, wenn Sie der Sammlung in Ihrem Code untergeordnete Elemente hinzufügen und dann das übergeordnete Element (mit Cascade-All-Set) speichern : Sie speichern einen unnötigen Treffer in der Datenbank (da Hibernate dies ohne inverse Set denkt hat zwei Stellen, um die FK-Beziehung zu aktualisieren) und gemäß den offiziellen Dokumenten:
Wenn die Spalte einer Zuordnung als NICHT NULL deklariert wird, kann NHibernate beim Erstellen oder Aktualisieren der Zuordnung Verstöße gegen Einschränkungen verursachen. Um dieses Problem zu vermeiden, müssen Sie eine bidirektionale Zuordnung mit dem vielwertigen Ende (dem Satz oder der Tasche) verwenden, das als invers = "wahr" markiert ist.
Dies alles scheint bisher sinnvoll zu sein. Was ich nicht verstehe, ist Folgendes: Wann möchten Sie inverse = true NICHT für eine Eins-zu-Viele-Beziehung verwenden?