2017-08-17 3 views
0

@OneToMany(mappedBy="columnOne", orphanRemoval=true, cascade=CascadeType.ALL) @LazyCollection(LazyCollectionOption.FALSE) private List<Constraint> constraints = new ArrayList<Constraint>();Hibernate: Update leer Kind Tabelle

, wenn die Eltern Kind Rekord das Kind Tabellen Datensatz aktualisiert wird, sollte auch aktualisiert.

Wenn ich müde mit session.SaveOrUpdate(), wurde die übergeordnete Tabelle Datensatz aktualisiert, aber das Kind Tabelle jedes Mal ein neuer Datensatz eingefügt und nicht aktualisiert, welche Daten

Wenn müde mit session.merge zu duplizieren führt() Fehler A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance: com, da die Einschränkung null sein kann, da nicht immer die untergeordnete Tabelle Daten

hat Um dieses Problem zu beheben, versucht, leere Auflistung festzulegen, aber das führt zu viele Zeilen in der Datenbank mit Nullwerten.

Gibt es eine Möglichkeit Eltern und Kind selbst zu aktualisieren, wenn Daten untergeordnete Tabelle null sein können

Antwort

0

, wenn die Eltern Kind Datensatz die untergeordneten Tabellen aktualisiert wird Rekord auch aktualisiert werden soll.

Hibernate schmutzig Kontrolle würde das für Sie tun alles, was Sie alle Ihre Einrichtungen geführt haben müssen, überwintern auf jede Änderung der verwalteten Einheiten standardmäßig überprüft, die alle verwalten Einheiten und ihre Attribute, überprüfen Sie diese link für weitere Infos

Wenn ich müde mit session.SaveOrUpdate(), die übergeordnete Tabelle Rekord bekam aktualisiert, aber das Kind Tabelle jedes Mal ein neuer Datensatz eingefügt wird und nicht aktualisiert, welche Daten zu duplizieren führt

Ich würde schätzen, dass Ihre untergeordneten Entitäten nicht verwaltet werden und keinen ID-Wert haben, also ja Ihre Kinder werden kaskadiert (weil das ist, was Sie wollen, indem Sie kaskadentyp einstellen) und als neue Datensätze in Ihrer Datenbank gespeichert werden.