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

Odpovedet emailem