- Kiemelkedően csendes ASUS VGA jött a Noctua közreműködésével
- Milyen Android TV boxot vegyek?
- ThinkPad (NEM IdeaPad)
- Milyen videókártyát?
- Fejhallgató erősítő és DAC topik
- Nem indul és mi a baja a gépemnek topik
- Milyen processzort vegyek?
- Azonnali fotós kérdések órája
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Szünetmentes tápegységek (UPS)
Hirdetés
Ú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?:))
- Kiemelkedően csendes ASUS VGA jött a Noctua közreműködésével
- Mibe tegyem a megtakarításaimat?
- Milyen Android TV boxot vegyek?
- ThinkPad (NEM IdeaPad)
- Apple Watch Sport - ez is csak egy okosóra
- Kerékpárosok, bringások ide!
- Battlefield 6
- Autós topik
- Milyen légkondit a lakásba?
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- LG 55QNED87T 139 cm-es 4K QNED Gaming Erőmű, 120Hz-el és 3ms válaszidővel!
- LG 65QNED87T 165 cm-es 4K QNED Gaming Erőmű, 120Hz-el és 3ms válaszidővel!
- MacSzerez.com - 2022 MacBook Pro 13" Retina M2 / 8GB RAM / 256GB SSD / Asztro / Garancia / Magyar
- 3x ASUS Turbo RTX 2080 Ti (11 GB) / Frissen pasztázva / Igény esetén + EKWB vízesblokk.
- LG 75QNED87T 190 cm-es 4K QNED Gaming Erőmű, 120Hz-el és 3ms válaszidővel!
- ROBUX ÁRON ALUL - VÁSÁROLJ ROBLOX ROBUXOT MÉG MA, ELKÉPESZTŐ KEDVEZMÉNNYEL (Bármilyen platformra)
- Asus ROG X13 Flow 2in1 Touch WUXGA 120Hz Ryzen9 5900HS 16GB 1TB SSD Nvidia RTX 3050Ti Win11 Garancia
- HIBÁTLAN iPhone 14 Pro 128GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3029, 90% Akkumulátor
- DELL Precision 5540 Workstation i7-9850H Nvidia Quadro T1000 32GB 1000GB 15.6 új akksi 1év garancia
- GYÖNYÖRŰ iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3043, 94% Akkumulátor
Állásajánlatok
Cég: FOTC
Város: Budapest