On Wed, Jun 11, 2008 at 12:56:46PM +0200, Jiří Mareš wrote: > > Ahoj > > >>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...) > > No my jsem je vypsali a rekli jsme u nich, ze jsou neinicializovane, > protoze kazdopadne nechci, aby mi toString jako side effect tahalo neco z > db ...
Coz ja prave potrebuju, abych mel prehled, co se mi to vlastne v DB udelalo. Neni to zadna p...., to mi muzete verit. > >>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. > > No my jsme si do ThreadLocal ulozil collection, kde se drzi seznam jiz > zapsanych objektu. Pokud v ramci jednoho volani toString objekt zapisuji > poprve, pak jej zapisu cely vcetne jeho podgrafu, pokud jej zapisuju > podruhy, pak zapisu jeho systemovy hash a podle nej si jej muzu dohledat ve > vypise nekde driv ... Ano, je to jedna moznost. Uz jsem o ni uvazoval, co mi to prinese. Problem je v tom, ze mi to ukazalo na nutnost drzet si cely graf vypsanych objektu v pameti, protoze jsou chvile, kdy potrebuju mit TRI ruzne zobrazeni(hash neni to prave orechove), a to se mi FAKT nechtelo. Ale stejne budu muset neco obdobneho zavest, protoze potrebuju vypsat k jednomu radku tabulky A radky tabulky D, ke kterym se dostanu pres tabulky B a C, procemz tabulka B je pouha vazba 1:(0,1) a mohl bych se tak velice rychle dostat do stavu, kdy budu vypisovat A->B->(A->B->(A,C),C). Fuj. A nebo budu vypisovat ty Hashe a napisu si vlastni graficky Renderer :-D Hmm. To uz muzu zrovna z DB generovat triplety pro nas RDFNavigator, co? tapik > >Takze zustanu u sveho systemu a jdu si hrat s toString() pluginem do > >Idei... > > Jak se rika, kazdy sveho stesti strujcem. Me se hodne pozdava to napichnuti > do objektu pomoci aspektu, protoze mam definici toString na jednom miste :-) > > >>>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 > > -- > Jiří Mareš (mailto:[EMAIL PROTECTED]) > ČSAD SVT Praha, s.r.o. (http://www.svt.cz) > Czech Republic
