Hirdetés
- A természettel együtt ébredeznek a hardverek
- A '90-es évek jutnak az eszünkbe az ATK készülő egeréről
- Huszadik születésnapjára eléggé megváltozott az Antec nagytornya
- Még a saját szövetségeseivel szemben is fegyverként használná az AI-t az USA
- Mégis meglepi egy új GeForce-szal a rajongókat az NVIDIA?
- Ilyen olcsó sem volt még egy Apple notebook
- Azonnali VGA-s kérdések órája
- OLED monitor topic
- Pedzegeti az új Xbox irányát a Microsoft
- Külső 3,5'' mobil rack-ek topikja
- Modding és elektronikai kérdések
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Projektor topic
- Az elmúlt 30 év legjobb processzorai
- E-book olvasó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?:))
- ADATA Legend 900 2TB 7000MB/s 5400MB/s Gen4 X4 2280 M2 NVMe SSD / Beszámítás OK!
- (Szinte új)Samsung Galaxy Watch 8 44mm+ kiegészítők
- G.SKILL Trident Z RGB 16GB (2x8GB) 3000MHz DDR4 kit / BESZÁMÍTÁS OK!
- Apple iPhone 12 64GB 100% Akku Újszerű,Dobozos,Tartozékaival. 1 Év Garanciával!
- Kingston HyperX Fury 2x4GB 1600MHz DDR3 kit
- HIBÁTLAN iPhone 12 Pro 256GB Graphite - 1 ÉV GARANCIA - Kártyafüggetlen, MS3283
- Apple iPhone 15 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- GYÖNYÖRŰ iPhone 12 Pro 256GB Pacific Blue-1 ÉV GARANCIA -Kártyafüggetlen, MS4339, 100% Akksi
- GEN5!!! 14/12GB/s 1TB Gen5x4 NVMe SSD, 1 év gar
- Apple iPad 7 32GB (3 hó Garancia)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

