kdyby to jinak neslo, tak minimalne pres ThreadLocal promennou je to
mozne udelat, pokud je Map<Integer, HodnotovyObjekt> znam v okamziku
volani ORM. Pokud vytvari Hibernate novou instanci UserType (myslim ze
ano) a ta mapa je definovana Springem, pak to lze udelat jeste
elegantneji pres AOP a depenedency injection pro domenove objekty.
@Configurable
public class MyType implements UserType {
@Autowired
private Map<Integer, HodnotovyObjekt> managedBean;
.
.
.
}
2008/2/18 Lukas Benda <[EMAIL PROTECTED]>:
> Dobry den,
>
> mam takovyhle problem: Mam sadu hodnot (objektu dane tridy), ktere nejsou v
> databazi. ale v nejakem setovacim souboru (aktualne jako Spring XML). Vlastni
> implementaci hashCode() ma kazdy z techto objektu vlastni hashCode(). Kdyz
> mam tedy objekt typu Map<Integer, HodnotovyObjekt> mohu jednoduse podle hash
> code najit hodnotovy objekt.
>
> Tento hodnotovy objekt je jako parametr pouzit ve tride jejiz instance chci
> ukladat do databaze.
>
> Jenze udelat UserType, ktery prevadi objekt na Integer, podle hashCode a
> zpatky vyzaduje mit pristupnou (zminovanou) mapu v instanci UserType (v
> opacnem pripade jde udelat jenom jednosmerny prevod). Bohuzel UserType se
> pradava jako trida a nikoli jako instance.
>
> Jak udelat takovy UserType?
>
> Existuje implementace UserType pro enum, ale tam je jiz pri kompilaci zname,
> ktere hodnoty vyctu mame, ale pokud se ty vycty tvori az za behu musim i
> UserType byt schopny prejimat parametry az za behu.
>
> Jak se da neceho takoveho dosahnout?
>
> P.S.: Je zde lepsi ORM, ktery tohle dovoluje? Protoze docela prestavam mit
> viru ve schopnosti Hibernate. Dynamicke UserTypy mi prijdou docela zakladni
> vlastnosti proto, aby nastroj byl skutecne ORM. Ve skutecnosti by dynamicky
> UserType ve spojeni s AOP absolutne nahradil vsechny mapovani kolekci a to
> velmi efektivne.
>
> To co chci je anglicky vlastne popsane v tomhle vlakne:
> http://forum.springframework.org/showthread.php?t=37815&highlight=user+type
> --
> Lukas Benda
>
--
S pozdravem Roman "Dagi" Pichlik
/* http://www.sweb.cz/pichlik/ Blog pro kodery */