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
