Hirdetés
- Android alkalmazások - szoftver kibeszélő topik
- Hivatalos a OnePlus 13 startdátuma
- Kicsinálja az S26 Ultra a fóliagyártókat
- Retró külső modern Bluetooth funkciókkal
- iOS alkalmazások
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Google Pixel topik
- Poco F8 Pro – titkos favorit lehet belőle
- iPhone topik
- Nagyot léphet előre az Oppo Find X10 kameraképességek tekintetében
Új hozzászólás Aktív témák
-
#39560925
törölt tag
Ha egy service layer-beli osztályban van egy @Transactional metódus, ami meghívja egy DAO osztály metódusát, amely osztályban be van injektálva egy EntityManager @PersistenceContext-tel, akkor ennek az EntityManagernek a perzisztenciakontextusa megmarad a hívó service layer-beli metódusban is?
Most kísérleti jelleggel azt csinálom, hogy a RestController osztály metódusát jelöltem @Transactional-nek és az közvetlen hívja a DAO osztály metódusát, ami egy MovieEntityvel tér vissza, de amikor a RestController metódusa átadja a Jackson JSON parsernek a MovieEntityt, akkor mintha már nem lenne meg a perzisztenciakontextus, mert a hibernate proxy objektum megszűnt, és nem éri el a kapcsolódó entitásokat:
com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: com.movietime.model.ActorsEntity.movies, could not initialize proxy - no Session
Próbálkoztam azzal, hogy EAGER fetchinget állítok be minden Entitás osztályban, és akkor nem lenne ilyen probléma, de akkor a túl sok bi-directional many-to-many asszociáció miatt megbolondul a hibernate és a Query.getSingleResult() már vissza se tér.
Kerestem olyan megoldást is, hogy lehessen korlátozni az EAGER fetching mélységét, de csak olyat találtam, hogy a LAZY-t lehet optimalizálni @BatchSize-zal. Viszont ez nekem nem jó, mert a JSON parserig már nem jut el a hibernate sessionje, vagy persistence contextje, nem tudom hogy hívjam.
Csinálhatnám azt is, hogy a DAO rétegben olyan lekérdezéseket írok kézzel, hogy lekérem a filmet, aztán lekérem a hozzá kapcsolódó színészeket, producereket, mindenkit, és összetákolom a kapcsolatokat, de ez egyrészt nagyon lábbal hajtós, másrészt az adatbáziskapcsolattal nagyon pazarló lenne. Jobb lenne, ha ezt a hibernate elintézné.
Az is jó lenne, ha a @Transactional úgy működne, ahogy a hsz elején a kérdésben feltettem, de nekem úgy tűnik, mintha nem így történne. Lehet azért, mert nem JTA típusú tranzakcióim vannak, hanem JPA?
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- One otthoni szolgáltatások (TV, internet, telefon)
- exHWSW - Értünk mindenhez IS
- Megkezdte az idei cicaharcot az AMD és az Intel
- AMD FX
- Filmvilág
- Android alkalmazások - szoftver kibeszélő topik
- Hobby elektronika
- BestBuy topik
- Alaposan helyretette az AI ellenzőit az NVIDIA vezetője
- Hivatalos a OnePlus 13 startdátuma
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 mini 128GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3884, 100% Akkumulátor
- Lenovo ThinkPad L16 Gen 1 - 16" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
- Bomba ár! Lenovo X13 Yoga G1 - i5-10G I 8GB I 256SSD I 13,3" FHD Touch I Cam I W11 I Gari!
- Apple iPhone Air Space Black 256 GB Használt, újszerű 100% akku / 7 ciklus 2026. 09.25
- Apple iPhone 15 128GB,Újszerű,Dobozaval,12 hónap garanciával
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs


