Ich habe eine Klasse, die eine Sammlung automatisch abruft, aber auf träge Weise, da sie nicht immer benötigt wird. Ich habe eine Methode, die auf dieser Sammlung beruht, aber ich möchte nicht, dass das träge Laden ausgelöst wird, wenn es noch nicht stattgefunden hat. Gibt es einen Weg zu erkennen, ob ein PersistentBag
nicht geladen wurde, ohne diese Ladung auszulösen?
Beispielklasse:
class MyClass {
private List toybox;
@OneToMany (fetch = FetchType.LAZY, mappedBy = "toyBox")
public List getToybox () {
return toybox;
}
public void setToybox (List toybox) {
this.toybox = toybox;
}
@Transient
public List toyNames() {
if (hasNotAlreadyLoaded(this.toybox) {
return null; // Kann derzeit nicht ausgeführt werden; Daten nicht verfügbar
}
return parseToybox(this.toybox);
}
}
Also, die Frage ist, was soll boolean hasNotAlreadyLoaded(PersistantBag bag)
tun, um zu überprüfen, ob die Sammlung geladen wurde? Das Überprüfen der .size()
habe ich versucht, aber das löst das Laden aus...