Ich probiere Beispiele für fetchType.Lazy
aus, aber beim Debuggen des Codes scheint fetchType.Lazy
nicht zu funktionieren.
Entity-Bean: Adresse
Annotation @Basic mit Eigenschaft fetch = fetchType.Lazy auf Distriktfeld hinzugefügt.
Meine Entity-Bean ist durch folgenden Code definiert:
%Vor%Die Methode, die obige Entity-Bean verwendet:
%Vor% Nach dem Methodenaufruf find
, als ich das Adressobjekt inspiziert habe, war es bereits mit dem Distriktfeld gefüllt.
Bitte lassen Sie mich wissen, ob mir eine Konfiguration fehlt oder ob ein Problem mit dem Code selbst besteht.
Das Problem ist, dass der Anwendungsserver bei der Verwendung in der @Basic
Annotation selbst entscheiden kann, wann es besser ist, die Daten zu holen. Wie dokumentiert hier
Die Strategie EAGER ist eine Anforderung für die Laufzeit des Persistenzanbieters, dass der Wert unbedingt abgerufen werden muss. Die Strategie LAZY ist ein Hinweis für die Laufzeit des Persistenzanbieters.
@OneToMany
- ähnliche Anmerkungen haben nach der Dokumentation das gleiche Problem, aber in diesem Fall ist es viel wahrscheinlicher, dass der JPA-Provider den FetchType-Hinweis berücksichtigt.
Andererseits könnten Sie es mit einem großen Datenfeld wie
versuchen %Vor%, um zu sehen, ob sich etwas ändert (obwohl Ihr Anwendungsserver wiederum entscheiden kann, immer das Feld zu holen).
Um zu überprüfen, ob ein Sammlungsfeld geladen wurde, würde ich entweder die Datenbankabfrageprotokolle prüfen oder Folgendes tun:
%Vor%Um laze in JPA zu initialisieren, müssen Sie eine Jar-Bibliothek aufrufen und starten, wenn es mit maven oder manuell ist. Wenn Sie beispielsweise faulenzen möchten, verwenden Sie jar in maven jar de.empulse.eclipselink Weitere Informationen Ссылка
Wenn Sie maven nicht verwenden, können Sie das jar manuell aktivieren
Derselbe Code, der in Frage gestellt wurde, funktioniert jetzt gut ..: -)
Wie Andrei sagte, fetchType.Lazy ist nur ein Hinweis auf den JPA-Container, egal ob @Basic-Annotation oder @OneToMany. Es ist völlig Sache des JPA-Containers, den Fetch-Typ als eifrig oder faul zu bestimmen.
Tags und Links jpa