Ahoj,
a co neplnit vazbu na obou koncich.
Mapovani vazeb na obou stranach neni casto nutne. Kdyz je nepouzijete
usetrite si spoustu problemu.
Predpokladam, ze nepotrebuje v jedne session pridavat zaznamy a zaroven
je nacitat z master objektu.
Misto setu detailu bych pouzil HQL nebo Crieteria API.
Viz
http://blog.hibernate.org/cgi-bin/blosxom.cgi/2006/01/25#collectionmapping
Lukas
[EMAIL PROTECTED] wrote:
Zdravím konferenci,
začínáme nový projekt ve Springu+Hibernate. Jakým způsobem
doporučujete zajišťovat konzistenci obousměrných vazeb v modelu?
Mějme třídy Master, Detail a mezi nimi obousměrnou vazbu 1:N.
Master má metodu addDetail(), Detail má metodu setMaster().
1. Konzistenci zajišťuje přímo implementace metod addDetail(),
setMaster() - volání každé jedné z nich zajistí naplnění vazby na obou
"koncích"
2. Konzistenci zajišťuje klientský kód předepsaným voláním dvojic
addDetail() && setMaster().
3. Konzistenci zajišťuje "používání" Hibernate a příslušné mapování,
konzistence je zaručena až po load()
Dosud jsem používal metodu 1), teď jsem však narazil při vytvoření
Spring validátoru, který dělá db dotaz.
Stručně - vytvořím nový Detail (tady zabere konzistence a je
aktualizován model Mastera) a chci ho validovat. Před db dotazem ve
validátoru však Hibernate provede sql příkazy
včetně pokusu o update dosud nepersistentního Detailu na použitého
Mastera.
Tedy - jak zajišťujete konzistenci modelu?
Pokud taky metodou 1, jak řešit nastíněný problém s validátorem?
Díky za odpovědi.
Jara
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________