Ted jsem nahodou narazil jeste na:

http://community.jboss.org/wiki/BestPracticesforThick-ClientApplicationsienon-webapps

kde jsou dva odkazy:
http://in.relation.to/Bloggers/HibernateAndSwingDemoApp
http://www.360works.com/articles/detail/56/

2010/9/17 Ondra Medek <[email protected]>:
> Transparentni reseni pro klienta je pomerne slozite, nezkousel jsem to, viz:
>
> http://h3t.sourceforge.net/
> http://community.jboss.org/wiki/RemoteLazyLoading
> http://www.theserverside.com/news/1363571/Remote-Lazy-Loading-in-Hibernate
>
> Ja to resim manualne - mam pro kazdou entitu statickou metodu, ktera
> dotaha, co je potreba. Zbyvajici kod na klientovi pak jen zavola tuto
> jednu metodu - tedy jen jeden radek kodu navic. Zaklad je toto:
>
> public static <T extends BaseEntity> T initEntity(T entity, GenericDao<T> 
> dao) {
>                if (Hibernate.isInitialized(entity)) {
>                        return entity; // already initialized
>                }
>                return dao.getById(getIdDirect(entity));
> }
>
> public static Integer getIdDirect(BaseEntity entity) {
>        if (entity instanceof HibernateProxy) {
>                LazyInitializer lazyInitializer = ((HibernateProxy)
> entity).getHibernateLazyInitializer();
>                if (lazyInitializer.isUninitialized()) {
>                        return (Integer) lazyInitializer.getIdentifier();
>                }
>        }
>        return entity.getId();
> }
>
> kde dao.getById(getIdDirect(entity)); je ziskani entity pres jeji ID.
> Tedy neni to pro kolekce, to jsem zatim nepotreboval. Spise se snazim
> klientovi vratit vse, co je potreba. Toto pouzivam zatim jen na
> zobrazeni tooltipu a podobnych mene podstatnych informaci. Pokud se
> entity meni, tak je myslim lepsi toho nacist vzdy co nejvice v jedne
> transakci. Mezi ruznymi transakcemi nekdo jiny muze data zmenit a z
> toho mohou byt problemy.
>
> 2010/9/17 Pavel Nemec <[email protected]>:
>> No ano, problem je lazy loading. Rad bych klienty odstinil od zpusobu
>> persistence (je to mimo jine i pozadavek) a nechci tedy aby si museli
>> dotahovat nejake kusy na zaklade vyjimky "session is closed", nebo aby
>> takovou vyjimku vubec museli chytat.
>>
>> O DTO a potazmo apache commons beanutils jsem nevedel, urcite na to
>> mrknu. Mohlo by to pomoci pri reseni.
>>
>> Dik
>> Pavel
>>
>> Dne 17. září 2010 13:10 Ondra Medek <[email protected]> napsal(a):
>>> Ahoj,
>>>
>>> a kde je problem: lazy reference neni serializable nebo ti vadi, ze
>>> klient si pak nedokaze ty lazy reference sam dotahat? Oba pripady jdou
>>> resit. Pripadne pri prevadeni entit do DTO muze slouzit Apache commons
>>> beanutils - pak se to lehce zautomatizuje.
>>> --
>>> Ondra Medek
>>>
>>>
>>>
>>>
>>> 2010/9/17 Pavel Nemec <[email protected]>:
>>>> Zdravim konferencei.
>>>>
>>>> Mam takovy pekny zapeklity problem. Na serveru pouzivame jako backend
>>>> sql+hibernate. Data cestuji pomoci jboss+rmi na tlusteho klienta. Tech
>>>> je radove stovky a tak neni ani zdaleka problem ve vykonosti databaze
>>>> nebo jboss serveru. Vse to funguje pomerne pekne.
>>>>
>>>> V soucasne chvili pracujeme na dalsi verzi a reviduji soucasne postupy.
>>>>
>>>> Muj problem je ze pokud objekt nactu z hibernate obsahuje spoustu
>>>> proxy a lazy loaded pod-objektu (kolekci).  Zkousel jsem dohledat
>>>> nejake doporucene postupy jak s tlustym klientem pracovat s hibernate,
>>>> ale nenalezl jsem nic uzitecneho.
>>>>
>>>> Nevidim cestu jak poslat objekty obsahujici lazy reference na klienta
>>>> (pres rmi) a jedinou cestu jak z toho vidim prekladat do klientskych
>>>> obrazu techto objektu. To sebou nese samozrejme preklad a dva typy
>>>> objektu.
>>>>
>>>> Na druhou stranu to nenuti klienta resit cokoliv s hibernate.
>>>> Premyslel jsem take osekat Ukladane objekty a vse nahravat pomoci
>>>> EAGER. Ale bojim se ze ani to neni cesta, protoze to Ukladane objekty
>>>> prilis svaze.
>>>>
>>>> Rad bych si usetril praci. A tak hledam reference na to jak to delaji
>>>> ostatni, pripadne cemu se rovnou vyhnout.
>>>>
>>>> Dik,
>>>> Pavel
>>>>
>>>
>>
>
>
>
> --
> Ondra Medek
>



-- 
Ondra Medek

Odpovedet emailem