Hallo,
ich hab da mal eine Verständnisfrage.
Folgendes Beispiel:
Entity "a" mit einer one-to-many Beziehung zu einem anderen Entity "b".
Beim Start der Anwendung lese ich alle "a" Objekte aus der Datenbank. Dann wird durch einen Benutzerevent alle "b" Objekte eines bestimmten "a" Objektes benötigt.
Wie gehe ich nun am besten vor?
1. Möglichkeit: SessionBean: Stateful, Persistent Context: Extended.
Enitiy im Persistent Context belassen.
Lazy Load funktioniert überall in der Anwendung. Also kann ich an beliebiger Stelle einfach List<B> bs = a.getB(); schreiben.
2. Möglichkeit: SessionBean: Stateful, Persistent Context: Extended.
Enititys so früh wie möglich detachen (em.clear()).
Also muss ich um die b's zu bekommen wieder auf meine SessionBean zugreifen, wo ich das a Objekt merge, dann per Lazy Load auf die b Objekte zugreife und diese dann zurückgebe.
3. Möglichkeit: SessionBean: Stateless, Persistent Context: Transaction, Fetch Type: Eager
Ich kann überall in der Anwendung auf die b Objekte zugreifen weil sie schon mitgeladen wurden.
4. Möglichkeit: SessionBean: Stateless, Persistent Context: Transaction, Fetch Type: Lazy
Neues JQL Query indem ich die b's die dem a Objekt zugeordnet sind aus der DB lese.
Welche der Möglichkeiten macht am meisten Sinn? (In der endgültigen Version wird es definitv viel a Objekte mit noch mehr b Objekten geben)
Am bequemsten finde ich die Lösung, das alle Entitys einfach im Persistenz Context verbleiben aber wieviel kostet das an Leistung?
ich hab da mal eine Verständnisfrage.
Folgendes Beispiel:
Entity "a" mit einer one-to-many Beziehung zu einem anderen Entity "b".
Beim Start der Anwendung lese ich alle "a" Objekte aus der Datenbank. Dann wird durch einen Benutzerevent alle "b" Objekte eines bestimmten "a" Objektes benötigt.
Wie gehe ich nun am besten vor?
1. Möglichkeit: SessionBean: Stateful, Persistent Context: Extended.
Enitiy im Persistent Context belassen.
Lazy Load funktioniert überall in der Anwendung. Also kann ich an beliebiger Stelle einfach List<B> bs = a.getB(); schreiben.
2. Möglichkeit: SessionBean: Stateful, Persistent Context: Extended.
Enititys so früh wie möglich detachen (em.clear()).
Also muss ich um die b's zu bekommen wieder auf meine SessionBean zugreifen, wo ich das a Objekt merge, dann per Lazy Load auf die b Objekte zugreife und diese dann zurückgebe.
3. Möglichkeit: SessionBean: Stateless, Persistent Context: Transaction, Fetch Type: Eager
Ich kann überall in der Anwendung auf die b Objekte zugreifen weil sie schon mitgeladen wurden.
4. Möglichkeit: SessionBean: Stateless, Persistent Context: Transaction, Fetch Type: Lazy
Neues JQL Query indem ich die b's die dem a Objekt zugeordnet sind aus der DB lese.
Welche der Möglichkeiten macht am meisten Sinn? (In der endgültigen Version wird es definitv viel a Objekte mit noch mehr b Objekten geben)
Am bequemsten finde ich die Lösung, das alle Entitys einfach im Persistenz Context verbleiben aber wieviel kostet das an Leistung?
Zuletzt bearbeitet: