Frage

Was bedeutet die CascadeType.REFRESH tatsächlich tun?

Die Definition für es ist

  

Wenn wir aktualisieren ein Unternehmen alle der in diesem Bereich refresh gehalten Einheiten zu

aber was bedeutet das in der Praxis? Könnte jemand ein einfaches Beispiel geben Sie mir bitte?

War es hilfreich?

Lösung

Die einzelne CascadeType Beschreibungen können ein wenig verwirrend sein, aber es gibt eine einfache Möglichkeit, es aus dem allgemeinen Fall zu verstehen.

Für jede der CascadeType Werte, bedeutet dies, dass, wenn der Betrieb X auf einer Instanz mit der EntityManager-Schnittstelle aufgerufen wird, und diese Instanz hat Verweise auf andere Objektinstanzen, und diese Assoziation definiert hat CascadeType.X, dann wird der EntityManager Betrieb auch sein angewandt auf diese zugehörigen Einheit.

So EntityManager.refresh() ist wie folgt definiert:

  

Aktualisieren Sie den Zustand der Instanz von   die Datenbank und überschreibt Änderungen   das Unternehmen, wenn überhaupt.

Also, wenn Unternehmen A einen Verweis auf Einheit B hat, und dass die Bezugnahme mit @CascadeType.REFRESH kommentiert und EntityManager.refresh(A) genannt wird, dann wird EntityManager.refresh(B) implizit auch genannt wird.

Andere Tipps

Retrieval durch Aktualisierung: Verwaltete Objekte können aus der Datenbank unter Verwendung der Refresh-Methode neu geladen werden:

Der Inhalt des verwalteten Objekts im Speicher abgelegt wird (einschließlich Änderungen, falls vorhanden) und durch Daten ersetzt, die aus der Datenbank abgerufen werden. Dies könnte nützlich sein, um sicherzustellen, dass die Anwendung befasst sich mit der aktuellsten Version eines Entitätsobjekt, nur für den Fall könnte es von einem anderen EntityManager geändert wurden, da es abgerufen wurde.

Quelle: http://www.objectdb.com/java/jpa/persistence/ abrufen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top