- Majdnem mindenki a TSMC 2 nm-es node-jára vágyik, de van egy nagy probléma vele
- Apple MacBook
- Vezetékes FÜLhallgatók
- Autós kamerák
- Kormányok / autós szimulátorok topikja
- Milyen egeret válasszak?
- ASUS notebook topic
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Fali konzol lapos tévékhez
Új hozzászólás Aktív témák
-
Oppenheimer
nagyúr
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?:))
- Majdnem mindenki a TSMC 2 nm-es node-jára vágyik, de van egy nagy probléma vele
- Yettel topik
- Apple MacBook
- Vezetékes FÜLhallgatók
- Autós kamerák
- Kormányok / autós szimulátorok topikja
- Milyen routert?
- nVidia tulajok OFF topikja
- Milyen egeret válasszak?
- exHWSW - Értünk mindenhez IS
- További aktív témák...
- Apple Watch Series 10 GPS + Cellular 46mm Kozmoszfekete (Telekom gari 2027.10.)
- OnePlus 7T Pro 8/256GB, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Samsung Galaxy S24 Ultra 12/512GB, Megkímélt, Kártyafüggetlen, Töltővel, Dobozzal, 1 Év Garancia!
- Prémium Gamer/Creator Laptop: ASUS ROG Zephyrus M Pantone Kijelzővel, 32GB RAM!
- Apple IPhone 14 Pro Max GOLD 128GB KÁRTYAFÜGGETLEN 86% AKKU
- Xbox Ultimate előfizetések
- Xiaomi Redmi 13128GB Kártyafüggetlen 1Év Garanciával
- Csere-Beszámítás! Asus Számítógép PC Játékra! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- AKCIÓ! ASUS PRIME Z390-P i5 8600K 16GB DDR4 512GB SSD RX 6600 8GB GDDR6 DEEPCOOL Matrexx55 630W
- BESZÁMÍTÁS! Lenovo Legion 5 15ITH6H Gamer notebook - i7 11800H 16GB DDR4 512GB SSD RTX 3060 6GB W11
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest