Jestem zmieszany. Emmanuel Bernard napisał w ANN-418
że @Lob
są domyślnie leniwe (tzn. nie musisz nawet używać @Basic(fetch = FetchType.LAZY)
adnotacja).
Niektórzy użytkownicy zgłaszają, że leniwe ładowanie @Lob
nie działa ze wszystkimi sterownikami/bazą danych
.
Niektórzy użytkownicy zgłaszają, że działa podczas korzystania z instrumentacji kodu bajtowego (javassit? cglib?).
Ale nie mogę znaleźć żadnego wyraźnego odniesienia do tego wszystkiego w dokumentacji.
Na koniec zalecane obejście jest użycie "fałszywych" mapowań jeden-do-jednego zamiast właściwości. Usuń pola LOB z istniejącej klasy, utwórz nowe klasy odwołujące się do tej samej tabeli, tego samego klucza podstawowego i tylko niezbędnych pól LOB jako właściwości. Określ mapowania jako jeden do jednego, fetch="select", lazy="true". Dopóki obiekt nadrzędny jest nadal w sesji, powinieneś otrzymać dokładnie to, czego chcesz. (po prostu zamień to na adnotacje).