Ahoj,
mam dost zvlastni problem s mapovanim kolekce pres hibernate.

V databazi mam dve tabule user(id:number, username:varchar2, pass:varchar2) a userpermission(user_id:number, permission:varchar2).

Sloupec userpermission.permission obsahuje kod opravneni. Kdyz bude potreba v aplikaci zobrazit nazev nebo nejaky popis tak se to vezme REsource bundlu. Sada opravneni je urcena na zacatku a behem zivota aplikace je nemenna. Proto nepotrebuju mit v db specialni tabuli permission.

V aplikaci mam jednu entitu User. Ta ma propertu private Set<String> permissions . Na tenhle set potrebuju namapovat data z userpermission.permission.

Mapovano to mam nasledovne:
<set name="permissions" table="USERPERMISSION" lazy="false" fetch="join" inverse="false" cascade="all">
<key column="USER_ID" not-null="true"/>
<element column="PERMISSION" type="string" length="40"
not-null="true"/>
</set>

Problem je v tom, ze ve vysledku je ten set vzdycky prazdny.
Kdyz zkusim save tak to jede v pohode. Kod user.getPermissions().add("test_permission"); userDao.save(user); mi data ulozi do db spravne. Problem je kdyz potom chci tyhle data cist. userDao.load(id) mi vrati spravnou instanci entity User, ale set permissions je prazdny sad smiley Co mi na tom prijde divne nejvic je, ze hibernate dela spravny dotaz do db a spravna data se dostanou i do user typu, ktery preklapi data z rs na entity. Dopracoval jsem se k tomu, ze jsem zjistil, ze data co vrati hibernate se strkaji do nejakeho tempListu v PersistentSet. To se mi ale potom nekde ztrati a ja nemuzu prijit na to kde a proc sad smiley

Nenapada vas duvod proc se to deje?
diky
Tomas

Odpovedet emailem