Auch wenn Sie die Löschmethode mit dem Primärschlüssel an das Reposytory senden, scheint der Datensatz nicht gelöscht zu werden, und dtl wird von der HDR-Suche nach Redisplay durchsucht.
Hat die folgenden Entitäten --dtlEntity sind untergeordnete Daten (Details) --hdrEntity ist das übergeordnete Element --hdrEntity hat dtlEntity im Listenfeld wie folgt
HdrEntity
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "tMitsumoriHdrEntity")
@JsonIgnore
private List<DtlEntity> dtlEntity;
dtlRepository.delete(dtlEntity);
//Detailtabelle
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true, fetch = FetchType.EAGER, mappedBy = "tMitsumoriHdrEntity")
@JsonIgnore
private List<DtlEntity> dtlEntity;
Wenn Sie eine verwandte Entität in einer Liste haben, müssen Sie sie dauerhaft machen, indem Sie die Zuordnung zur Clear-Methode löschen, hinzufügen und dann wieder einfügen.
NG Beispiel
HdrEntity.setDtlEntity(saveDtlList);
HdRepository.save(HdrEntity);
--Wenn Sie Änderungen vornehmen, die die Anzahl der Elemente in der Liste ändern
A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
Ein Fehler tritt auf
richtig
HdrEntity.getDtlEntity().clear();
HdrEntity.getDtlEntity().addAll(saveDtlList);
HdRepository.save(HdrEntity);
HibernateException - A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
http://cristian.sulea.net/blog.php?p=2014-06-28-hibernate-exception-a-collection-with-cascade-all-delete-orphan-was-no-longer-referenced-by-the-owning-entity-instance
5.2. Datenbankzugriff (JPA Edition) 5.2.2.11. Implementierung des Löschprozesses für Entitäten https://terasolunaorg.github.io/guideline/public_review/ArchitectureInDetail/DataAccessJpa.html#id38
Ich habe nach JPA gesucht http://juzow.hatenablog.com/entry/20121017/1350480972
Recommended Posts