Hirdetés
- Eljött a CPU-k kora az AI-piacon
- Apple MacBook
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Igencsak energiatakerékos minigéppel támad a Shuttle
- Rekordidő alatt futott be az új Arc meghajtó
- Kormányok / autós szimulátorok topikja
- Házimozi belépő szinten
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- 3D nyomtatás
- Bambu Lab 3D nyomtatók
Ú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?:))
- Logitech g29
- Új, Gamer félgép - MSI Z890 GAMING PLUS WIFI + Intel Ultra 7 265K + Corsair 2x16GB DDR5 6400MHz CL32
- ASUS Rog Ally Z1 Extreme, 2027.01.12-ig gyári garanciás, hálózati töltőjével, szilikon tokkal eladó!
- HP 250 G7,15.6",i5-1035G1,8GB DDR4,256GB SSD,WIN11
- Lenovo ThinkPad T480s,FHD,14",i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH,jó akku
- HIBÁTLAN iPhone 14 Pro Max 512GB Silver -1 ÉV GARANCIA - Kártyafüggetlen
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- 27% - MSI RX 6650 XT GAMING X 8GB GDDR6 Videokártya!
- Ultimate előfizetés akár 3611 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
- Samsung Galaxy S26 Ultra 512 GB Égkék Karcmentes állapot 12 GB RAM SN: R5GL22FEBCW 6 hónap g
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

