On Wed, Jun 11, 2008 at 11:30:15AM +0200, Jiří Mareš wrote:
> 
> Ahoj,
> 
> no my jsem si nakonec napsali vlastni implementaci toString, jednu jedinou, 

Takze taky nenasli, moji radcove...

> ktera bere v potaz detekci jiz generovanych objektu a u nich uz se nepousti 
> do vypisu atributu. Zaroven umi poznat, ze se jedna o neinicializovany 
> objekt od Hibernate (proxy nebo kolekce) a ty se take nesnazi vypsat. Tu 
> jsme nakonec pomoci AspectJ dotlacili vsem potrebnym objektum.

Je otazka, zda neinicializovany objekt vypsat ci nikoli. Ja bych je totiz
naopak videl rad. Odladuji plneni databaze o vic nez 30 tabulkach, jejichz
vazby tvori uplny neplanarni graf (rozklad na BCNF mi vygeneroval 78
tabulek a do toho se mi vazne nechce...)

 
> V podstate jsme malinko vylepsili implemtaci z commons-lang, ktera je 
> zbytecne komplikovana a jenom detekuje cykly, kdezto my jsme chteli, aby se 
> objekt nezapisoval podruhe i mimo cyklus ...
 
No i tady je otazka, zda a kdy objekt vypsat dvakrat. Podle mne jsou situace,
kdy jej v ramoci jednoho toString() vypsat chcete komplet
a kdy chcete jen jeho IDcko... - takze urcite je potreba, aby se vypisoval
alespon dvema zpusoby.

Takze zustanu u sveho systemu a jdu si hrat s toString() pluginem do Idei...

> S pozdravem
> 
> Oto Buchta napsal(a):
> >Zdravim,
> >chtel bych se zeptat, co pouzivate na logovani Hibernate Entit.
> >Pokud chci zalogovat jenom literaly, neni co resit.
> >Problem nastava ve chvili, kdy chci logovat objekt vcetne vazeb.
> >Pak se velice rychle dostanu pri implementaci pouheho toString() do 
> >zacykleni.
> >Momentalne pouzivam tri urovne:
> > * toString(), ktery generuje vystup jak z literalu, tak s vazeb.
> >   Vazby prohani metodou flatToStringA()
> > * flatToString() generuje syntakticky stejny vystup jako toString()
> >   a to z literalu a vazeb, ktere jsou N:1 a 1:1. Vazby prohani 
> >   beanToString()
> > * beanToString() generuje syntakticky stejny vystup jako toString()
> >   a to pouze z literalu
> > 
> >Tim mam zarucene necykleni vystupu a rozumne maly graf.
> >
> >Moje otazka zni: existuje nejaky pekny nastroj, ktery umi logovat podobne
> >inteligentne, nebo si mam napsat plugin do IntelliJ/perlovy skript, ktery 
> >mi
> >bude sam generovat tyto tri metody? Teda devet, protoze mame i kolekce, ze,
> >a protoze ve staticke metode mohu udelat test na null logovaneho objektu, 
> >ze.
> >
> >Je mi jasne, ze by to slo resit i pres Reflection, ale tak nejak nemam
> >Reflection moc v lasce a hlavne nevidim presne do Hibernate, abych se tam
> >nedostal do nejakych velkych problemu, takze se mi do toho tak nejak 
> >nechce...
> >
> >Dik, tapik
> 
> -- 
> Jiří Mareš (mailto:[EMAIL PROTECTED])
> ČSAD SVT Praha, s.r.o. (http://www.svt.cz)
> Czech Republic

Odpovedet emailem