Reihenfolge im Ruhezustand entfernen

8

Ich habe 4 Entitäten:

Profil mit Beziehung zu companyContract:

%Vor%

CompanyContract: , die eine Beziehung mit der Arbeitszeittabelle haben:

%Vor%

Arbeitszeittabelle mit Beziehung zur Rechnung:

%Vor%

Rechnung:

%Vor%

So wie Sie hier sehen können, verwende ich org.hibernate.annotations.CascadeType.DELETE_ORPHAN , damit ich die Childs eines Elternteils löschen kann.

Wenn ich das ausfühle:

%Vor%

--- & gt; Die Reihenfolge der Entfernung sollte sein:

Rechnungen entfernen - & gt; Arbeitszeittabellen - & gt; CompanyContract, Nein?

Und stattdessen bekomme ich diesen Fehler:

  
    

org.hibernate.exception.ConstraintViolationException: Die Spalte 'IDCONTRACT' darf nicht null sein

  

Und ich habe überprüft, dieser Fehler tritt nach profileService.updateProfile(p);

auf     
Moatez Bouhdid 25.09.2017, 15:53
quelle

2 Antworten

2

Das Problem scheint zu sein, dass die Spalte IDCONTRACT in der Tabelle, die Arbeitszeittabellen enthält, eine NOT NULL Einschränkung hat. Entfernen Sie es und versuchen Sie es erneut.

Wenn Sie das Schema automatisch generieren, versuchen Sie, @Basic(optional = true) zu Timesheet.companyContract hinzuzufügen:

%Vor%     
Martín Straus 03.10.2017, 00:23
quelle
1

Das funktioniert ganz gut. Ich sehe, dass alle verbundenen untergeordneten Entitäten erfolgreich gelöscht werden.

Überprüfen Sie den folgenden Code.

Verwende orphanRemoval = true wie unten statt veraltet org.hibernate.annotations.CascadeType.DELETE_ORPHAN , die Sie verwenden.

%Vor%

Code unten finden

%Vor%     
omkar sirra 29.09.2017 10:12
quelle

Tags und Links