[VSA | Cvičenie] 4 - JPA obojsmerné asociácie
Preber si túto prednášku so svojou AI
Skopíruj pripravený podklad a vlož ho do ChatGPT, Claude alebo inej AI — bude ťa učiť alebo skúšať len z tejto prednášky.
Zhrnutie prednášky
Cvičenie sa zaoberá konfiguráciou obojsmerných asociácií v JPA, nadväzujúc na predchádzajúcu jednosmernú väzbu medzi entitami Game a Developer. Vysvetľuje sa rozdiel medzi vzťahom 1:N/N:1 (Game–Developer) a N:N (Game–Publisher), pričom sa demonštruje použitie anotácií OneToMany, ManyToOne a atribútu mappedBy na určenie vlastníka vzťahu. Na úvod cvičenia sa riešia aj organizačné otázky k opravovaniu teoretických testov a termínu implementačného testu. Diskutuje sa tiež o používaní JPQL príkazu UPDATE v rámci named query a odporúča sa namiesto priameho update radšej používať manažované entity a doménové metódy pre lepšiu čistotu a flexibilitu kódu.
- - Obojsmerné asociácie v JPA nadväzujú na predchádzajúce jednosmerné vzťahy (Game–Developer, Game–Publisher).
- - Anotácia JoinColumn definuje stĺpec na databázovej úrovni, zatiaľ čo OneToMany/ManyToOne definujú vzťah na úrovni JPA entít.
- - Pri obojsmernej asociácii sa vzťah konfiguruje pomocou mappedBy na strane, kde je zoznam entít (napr. Developer).
- - Rozlišujú sa dva typy vzťahov: 1:N/N:1 (Game–Developer) a N:N (Game–Publisher–Game) s rôznymi úskaliami.
- - Neodporúča sa používať JPQL UPDATE priamo v named query pre zmenu dát, lepšie je použiť manažované entity cez EntityManager v transakcii.
- - Named query je vhodné použiť najmä na selecty a vyhľadávanie, nie na update/insert operácie.
- - Diskutované boli aj organizačné otázky: oprava teoretických testov a termín implementačného testu v čase cvičenia.
Zhrnutie pripravené s pomocou AI z prepisu videa.
nechodím na prednášky