Re: Synchronizace persistentnich objektu
Presne vasi situaci (malo velkych stromu) mam taky. Resim to, jak jsem jiz napsal, verzovanim, a verzi vlastni kazdy objekt ve stromu (resp., kazdy objekt u ktereho to dava smysl, tj. objekt, ktery mohu nejakym zpusobem editovat). V pripade zapisu do db se zvetsi verze nikoliv pouze objektu, ktery byl editovan, ale i objektu na stejne vetvi az po koren, cimz zajistim konzistenci stromu. Ma to nevyhodu ze muze byt odmitnut zapis naprosto nesouvisejicich zmen, ale pomer cteni/zapis v moji aplikaci je natolik velky, ze jsem zvolil tuto strategii (tj. zvolil jsem mirny pesimismus v optimisticke strategii :-)) Mirek Lukas Barton napsal(a): Honza wrote: Dekuji za odpoved. Optimisticke zamikani vypada docela slibne. Nicmene vezmneme nasledujici priklad. Objekty v mem systemu se radi do samostatnych stromu. Techto stromu bude docela malo v pomeru s tim jak jsou velike. Zamykat jenom podstromy by bylo dost slozite, takze budu muset zamykat koren. Pouziji-li optimisticky lock znamena to ze si dva uzivatele budou moci soucasne otevrit ten samy strom a pracovat v nem (pridavat/prohlizet/menit/mazat listy), ale zmeny se podari ulozit jenom tomu kdo jako prvni klikne save a commitne svoji transakci. Druhemu uzivateli by pak bylo sdeleno ze jeho zmeny nelze ulozit. Z tohoto duvodu me prijde schudny jedine pesimisticky pristup. Nicmene stale premyslim jak to implementovat a jedine co me napada pridat do DB sloupecek ktery bude zamek identifikovat a tim se ridit. Dalsi problem vidim v trvanlivosti takovychto zamku a taky jak zajistim ze v jine session nedojde k nejake chybe a zamek se neuvolni. Je periodicke obnovovani zamku spravne reseni? Je to jedno z moznych reseni, ale jakekoliv pesimisticke zamky prinasi problemy - viz ten timeout zamku. Zajimave je to popsano v clanku http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/concurev4M.asp Tam se doctete, co dal by mohlo pomoci: - uzivatel vlastni svoje data (toto pouzivame ve 2,5 vrstve aplikaci taky, spolu s verzovanim) - pouzivate navrhovy vzor business actions neboli postings (v podstate chytrejsi verzovani dat) - omezte dobu po jakou muze uzivatel editovat sva data, bez ziskani nove verze - zvetste granularitu moznosti editace (napr. povolte pouze jednu zmenu struktury ve stromu a po ni synchronizujte verze se serverem) Do teto polozky by se moje aplikace dala zaradit. Verzovanim si v podstate vyrabite situaci kdy: - zapis neblokuje cteni - cteni neblokuje zapis Tj. MVCC, ktere v posledni dobe na urovni databaze zavedli/zavedou dalsi 3 produkty (MS SQL od verze 2005, DB2 na PC (verzi zpameti nevim a Informix (pristi verze). Tuto funkcionalitu uz delsi dobu ma Oracle (od verze 6 nebo 7), od uplneho zacatku Interbase (Firebird), PostreSQL a MySQL InnoDB. Lukas
Re: Spring + Hibernate: failed to lazily initialize a collection of role
A neresi tenhle problem tovarni metody? Misto toho aby jste zavolal new Okres(), addOkresToKra(okes), tak proste zavolate kraj.createNewOkres(). A tovarni metoda samozrejme s AOP pocita. Ja to takhle resim (ani mne to nenapadlo resi jinak) a nemam problem. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Benda Lukas wrote: Vysvetleni je strasne jednoduche. Pokud maji byt objekty nacitany pomoci lazy, musi mit odkaz na otevreny session. To znamena, ze po celou dobu zivota rodicovskeho objektu, musi byt session otevrena, co kdyby se nejaky lazy parametr mel zrovna nacist. To je znacne nehospodarne ne? Takze spring automaticky po ukonceni behu vlakna session uzavre. No ale pak zjevne nemuze fungovat lazy. Jak z toho? Prvni moznost je session zachytit a neumoznit jeji uvoneni. To znamena ze nechate vlakno ktere vlastni session zit. Brzi se ale dostanete do problemu. Takze druha moznost je vyuzit vlastni metodiku lazy nacitani. Logicky by se do kazde metody ktera vrati line nacitane objekty dalo pridat nacteni z nejakeho dao readeru, jenze pak je tu potrebne odchytit ukladani objektu rodicovskeho, aby se i lazy drzene objekty ukladali taky. Ale v male aplikaci je to suverejne nejlepsi reseni. V podstate se tak oprostite i od hibernate, vyhnete se spouste problemu a celou ORM si udelate sam na miru. Cas ktery spotrebujete na vytvareni takovehoto ORM modelu, je pri malych aplikacich (s malym mnozstvim tabulek) vyrazne nizsi nez kolik poterbujete na zkroceni hibernate. No ale ve vetsim projektu, se hibernate uz vyplati. Takze pak se logicky nabizi moznost AOP. Spring ma specialni AOP object pro komunikaci s hibernate. V definici pak vubec lazy nepouzivate a nacitani nechavate na springu, ktery vse zaridi pres AOP: bean id=jHasEvidHibernateInterceptor class=org.springframework.orm.hibernate3.HibernateInterceptor property name=sessionFactory ref bean=jHasEvidSessionFactory/ /property /bean bean id=krajTarget class=cz.apnetis.jhasevid.db.KrajClass property name=associationref bean=association//property /bean bean id=kraj class=org.springframework.aop.framework.ProxyFactoryBean property name=targetref bean=krajTarget//property property name=proxyInterfaces valuecz.apnetis.jhasevid.db.KrajInterface/value /property property name=interceptorNames list valuejHasEvidHibernateInterceptor/value /list /property /bean Kde association je jakykoli parametr ktery ma byt jednoduse predan. Pokud se nepletu, tak toto reseni moc nepomuze. Problem je, ze Spring AOP neumi obalovat instance objektu, ktere vytvarite pomoci new Constructor(), coz Hibernate dela. Smysl to ma pouzit jedine, pokud tim obalite DAO tridu, jejiz instanci ziskate od Spring ApplicationContextu a dale jak uz jsem psal v predchozim mailu k tomuto tematu. Jinak s tim ukladanim objektu nactenych lazy v jine session muzou byt docela problemy, protoze je mate ve dvou ruznych session, tak jsou oddelene i JDBC transakce pod tim, takze je nutne volat vice commitu apod.
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Benda Lukas wrote: A neresi tenhle problem tovarni metody? Misto toho aby jste zavolal new Okres(), addOkresToKra(okes), tak proste zavolate kraj.createNewOkres(). A tovarni metoda samozrejme s AOP pocita. Ja to takhle resim (ani mne to nenapadlo resi jinak) a nemam problem. Ano, to mi nedoslo. Chtelo jen dopsat, ze je nutne je pouzit a nastavit je v Hibernatim mapovani. Lukas
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Benda Lukas wrote: A neresi tenhle problem tovarni metody? Misto toho aby jste zavolal new Okres(), addOkresToKra(okes), tak proste zavolate kraj.createNewOkres(). A tovarni metoda samozrejme s AOP pocita. Ja to takhle resim (ani mne to nenapadlo resi jinak) a nemam problem. Ano, to mi nedoslo. Chtelo jen dopsat, ze je nutne je pouzit a nastavit je v Hibernatim mapovani. Lukas
Re: RMI security manager, DB
No tak to vypada, ze tenhle problem nastava pac pouzivam Spring aten nejak vnitrne nepodporuje security context a remote transaction, jak pisi v prvnim odstavci o RMI. Takze asi budu muset pochopit a skrotit Acegi Security. Mate nekdo s nim zkusenosti? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Tak pri svych pokusech o rozchozeni RMI sem se dostal az do bodu, kdy propreneseni hlavniho objektu, potrebuji nastavit SecurityManager Tohle mi to pise kdyz ho nemam nastaveny (na strane klienta): java.lang.ClassNotFoundException: cz.apnetis.jhasevid.db.DBSupport (no security manager: RMI class loader disabled)] Takze jsem nastavil standardni RMISecurityManager: System.setSecurityManager(new RMISecurityManager()); Bohuzel ted se mi nerozbehne server protoze konci s chybou: NoClassDefFoundError: could not initialize class org.firebirdsql.pool.FBConnectionPoolDataSource Cely vypis chyby je radikalne delsi, ale zbytek uz je jenom: Objekt se neporadilo vytvorit, protoze nebyl vytvoren objekt, ktery nebyl vytvoren protoze , az nakonec je vise zminena hlaska. Pritom, kdyz security manager nastaveny neni, tak mi to tu chybu nehlasi (nehlasi ji to, ani kdyz je to skompilovane jako stand alone, verze v jednom baliku). Nejak presne nechapu podstatu security manageru, a proc mi to nepovoli vytvorit connection pool. Umite mi nekdo pomoct? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
SKJUG
Caf vsetkym zucastnenym, Ospravedlnujem sa ze tento offtopic, ale vhodnejsie miesto ako tuto konferenciu bude clovek hladat tazko. Po vzore CZJUG by sme radi zalozili aj SKJUG. Podporu sme dostali zatial od Roumena a ludi okolo CZJUGu a preto by som Vas chcel poziadat (netyka sa len Slovakov v konferencii) o Vase nazory na tuto aktivitu, hlavne teda ci ma nejaky vyznam a ci sa najdu ludia ochotni pomoct. Vase reakci mi pls posielajte na moj mail (nez sa zriadi listing skjug) nech nezatazujeme tuto konferu. Dik R^ S pozdravom Róbert Sláma SpiritLine s.r.o. Bernolákova ul. č. 1A 901 01 Malacky [EMAIL PROTECTED] gsm: 00421 905 122 841 tel: +421 34 778 20 88 +421 34 778 20 89 fax: +421 34 778 20 90 http://www.spiritline.org Monitoring webhostingov http://www.sentinel.sk
Re: SKJUG
Ahoj no v podstate v Bratislave uz pred tromi rokmi existovala BabaJaga ( Bratislavska Java Grupa ) ale boli sme dost lenivi. po par prednaskach sme to zabalili. Niekedy o tom mozeme hodit rec. Bye Ra100 Robert Slama wrote: Caf vsetkym zucastnenym, Ospravedlnujem sa ze tento offtopic, ale vhodnejsie miesto ako tuto konferenciu bude clovek hladat tazko. Po vzore CZJUG by sme radi zalozili aj SKJUG. Podporu sme dostali zatial od Roumena a ludi okolo CZJUGu a preto by som Vas chcel poziadat (netyka sa len Slovakov v konferencii) o Vase nazory na tuto aktivitu, hlavne teda ci ma nejaky vyznam a ci sa najdu ludia ochotni pomoct. Vase reakci mi pls posielajte na moj mail (nez sa zriadi listing skjug) nech nezatazujeme tuto konferu. Dik R^ S pozdravom Róbert Sláma SpiritLine s.r.o. Bernolákova ul. č. 1A 901 01 Malacky [EMAIL PROTECTED] gsm: 00421 905 122 841 tel: +421 34 778 20 88 +421 34 778 20 89 fax: +421 34 778 20 90 http://www.spiritline.org Monitoring webhostingov http://www.sentinel.sk -- Ing. Rastislav Rehak EEA communication solutions Hattalova 12, 831 03 Bratislava, Slovakia tel/fax: +421 2 4445 3690 _http://www.eea.sk_
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Ja vim, ze spring tu sessionu zavre, ale zajimalo by me, proc. Ja bych chtel prave konfiguraci, kde zustane otevrena, nebo kde ji reconnectne. V pripade, ze se bude pouzivat jenom jedna sessiona, tak mi lazy nacitani fungovat bude. V dokumentaci ke springu je mj. psano, ze prave rg.springframework.orm.hibernate3.support.OpenSessionInViewFilter by mel zajistit, aby sessiona zustala otevrena po dobu zpracovani celeho requestu. Stanislav Ulrych Benda Lukas wrote: Vysvetleni je strasne jednoduche. Pokud maji byt objekty nacitany pomoci lazy, musi mit odkaz na otevreny session. To znamena, ze po celou dobu zivota rodicovskeho objektu, musi byt session otevrena, co kdyby se nejaky lazy parametr mel zrovna nacist. To je znacne nehospodarne ne? Takze spring automaticky po ukonceni behu vlakna session uzavre. No ale pak zjevne nemuze fungovat lazy. Jak z toho? Prvni moznost je session zachytit a neumoznit jeji uvoneni. To znamena ze nechate vlakno ktere vlastni session zit. Brzi se ale dostanete do problemu. Takze druha moznost je vyuzit vlastni metodiku lazy nacitani. Logicky by se do kazde metody ktera vrati line nacitane objekty dalo pridat nacteni z nejakeho dao readeru, jenze pak je tu potrebne odchytit ukladani objektu rodicovskeho, aby se i lazy drzene objekty ukladali taky. Ale v male aplikaci je to suverejne nejlepsi reseni. V podstate se tak oprostite i od hibernate, vyhnete se spouste problemu a celou ORM si udelate sam na miru. Cas ktery spotrebujete na vytvareni takovehoto ORM modelu, je pri malych aplikacich (s malym mnozstvim tabulek) vyrazne nizsi nez kolik poterbujete na zkroceni hibernate. No ale ve vetsim projektu, se hibernate uz vyplati. Takze pak se logicky nabizi moznost AOP. Spring ma specialni AOP object pro komunikaci s hibernate. V definici pak vubec lazy nepouzivate a nacitani nechavate na springu, ktery vse zaridi pres AOP: bean id=jHasEvidHibernateInterceptor class=org.springframework.orm.hibernate3.HibernateInterceptor property name=sessionFactory ref bean=jHasEvidSessionFactory/ /property /bean bean id=krajTarget class=cz.apnetis.jhasevid.db.KrajClass property name=associationref bean=association//property /bean bean id=kraj class=org.springframework.aop.framework.ProxyFactoryBean property name=targetref bean=krajTarget//property property name=proxyInterfaces valuecz.apnetis.jhasevid.db.KrajInterface/value /property property name=interceptorNames list valuejHasEvidHibernateInterceptor/value /list /property /bean Kde association je jakykoli parametr ktery ma byt jednoduse predan. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Dobry den, mam prosbu o pomoc: Ve svem projektu pouzivam spring (1.2.6) a hibernate (3.1RC1) a nefunguje mi lazy inicializace mapovanych objektu : tomcat pise chybu: failed to lazily initialize a collection of role: beans.Project.phases, no session or session was closed konfigurace v msfchecklist-servlet.xml: bean id=sessionFactory class=org.springframework.orm.hibernate3.LocalSessionFactoryBean property name=dataSourceref bean=dataSource //property property name=configLocationvalueclasspath:hibernate.cfg.xml/value/property property name=configurationClassvalueorg.hibernate.cfg.AnnotationConfiguration/value/property property name=hibernateProperties props prop key=hibernate.dialect${hibernate.dialect}/prop prop key=hibernate.hbm2ddl.autoupdate/prop prop key= hibernate.show_sqltrue/prop /props /property /bean !-- Transactions -- bean id=transactionManager class=org.springframework.orm.hibernate3.HibernateTransactionManager property name=sessionFactoryref local=sessionFactory //property /bean bean id=dataStorageTarget class= businesslogic.DataStorageFacadeImpl property name=documentDAO ref=documentDAO / property name=documentInPhaseDAO ref=documentInPhaseDAO / property name=documentTypeDAO ref=documentTypeDAO / property name=phaseDAO ref=phaseDAO / property name=phaseInProjectDAO ref=phaseInProjectDAO / property name=projectDAO ref=projectDAO / property name=projectTypeDAO ref=projectTypeDAO / property name=roleDAO ref=roleDAO / property name=roleInProjectDAO ref=roleInProjectDAO / property name=signDAO ref=signDAO / property name=signRequestDAO ref=signRequestDAO / property name=userDAO ref=userDAO / /bean bean id=dataStorage class=org.springframework.transaction.interceptor.TransactionProxyFactoryBean property name=transactionManagerref local=transactionManager //property property name=targetref local=dataStorageTarget //property
Grafický nahled dokumentu
Zdravím všechny, nemůžete mě někdo nasměrovat na nějaké API nebo knihovnu, které by mi umožnilo generovat grafické náhledy dokumentů v běžně používaných formátech (HTML, MS-Office, OpenOffice, PDF, RTF,...)? Potřebuji vyřešit něco podobného jako má třeba seznam.cz v jednotlivých sekcích, kdy i ukazuje náhled titulní stránky odkazovaného webu. Já to ovšem potřebuji nejen na HTML. Díky za tipy a zkušenosti, -- Pavel Vedral -- Nez mi poslete prilohu .doc, .xls nebo .ppt, prectete si, prosim, WWW stranku uvedenou na poslednim radku signatury: http://www.gnu.org/philosophy/no-word-attachments.cs.html
Re:Udalosti klavesnice
Vy interface java.awt.event.KeyListener sice implementujete, ale musite jeste nastavit, ktere komponenty muzou tuto udalost vyvolat. addKeyListener() Původní zpráva Od: Moody [EMAIL PROTECTED] Předmět: Udalosti klavesnice Datum: 06.10.2006 00:39:39 Dobrý deň, písla som zdrojový kód, ktorý má vypísať kód klávesy,ktorú stlačím. Preklad skončil dobre,ale keď som Java applet spustil nefungovalo to tak ako som chcel. Ten kód je: import java.lang.*; import java.applet.*; import java.awt.Graphics; import java.awt.Event; import java.awt.Image; import java.awt.*; public class udalosti extends java.applet.Applet implements java.awt.event.KeyListener { //definujeme premenne int i = 0; public void paint (Graphics auto) { String s = null; auto.drawString(String.valueOf(i),10,10); } public void keyPressed(java.awt.event.KeyEvent e) { i = e.getKeyCode(); repaint(); } public void keyReleased(java.awt.event.KeyEvent uvolni) { i = 0; repaint(); } public void keyTyped(java.awt.event.KeyEvent ke) { i = ke.getKeyCode(); repaint(); } } Som začiatočník v programovaní v Jave. Takže možno som urobil v kóde veľké chyby. Ďakujem Za odpovede! Rasto
Tutose - Eclipse RCP
Zdravim konferenci, chtel bych se zeptat jestli by někdo nevedel o nejakem dobrem linku na tutose (tipy apod.) o RCP Elipse a SWT (krome elipse.org). Diky
Re: Grafický nahled dokumentu
Pavel Vedral wrote: Zdravím všechny, nemůžete mě někdo nasměrovat na nějaké API nebo knihovnu, které by mi umožnilo generovat grafické náhledy dokumentů v běžně používaných formátech (HTML, MS-Office, OpenOffice, PDF, RTF,...)? Potřebuji vyřešit něco podobného jako má třeba seznam.cz v jednotlivých sekcích, kdy i ukazuje náhled titulní stránky odkazovaného webu. Já to ovšem potřebuji nejen na HTML. Díky za tipy a zkušenosti, Toto není vůbec jednoduchý úkol. Zrovna jsme řešili daleko jednodušší případ a to pouze získání prostého textu z různých binárních dokumentů. Pro MS-office je možné použít jakarta poi http://jakarta.apache.org/poi/ (MS word to umí pouze v alpha verzi) pro PDF - PDF box http://sourceforge.net/projects/pdfbox pro OpenOffice - je nejjednodušší rozbalit dokument (pomocí zip) a parseovat content.xml pro RTF - jsem zkoušel RTFEditorKit, ale to nefunguje správně s diakritikou - viz. thread v konferenci. http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/rtf/RTFEditorKit.html Pak ještě existují různé komerční varianty od 100 až po 1000$. např. http://www.davisor.com/offisor/index.html Fafi
Re: Tutose - Eclipse RCP
Roszynec, Jiri (EOT) wrote: Zdravim konferenci, chtel bych se zeptat jestli by někdo nevedel o nejakem dobrem linku na tutose (tipy apod.) o RCP Elipse a SWT (krome elipse.org). Diky Ja bych spis doporucil knihy o RCP. Dobre jsou: Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications a Official Eclipse 3.0 FAQs Soucasti prvni je dost rozsahly priklad (tutorial). Dulezite je precist si neco o samotnem SWT/JFace, k tomu mi fakt dobre poslouzila knizka SWT/JFace in Action: GUI Design with Eclipse 3.0. Vsechny zminovane jsou i v seznamu i na eclipse.org Lukas
OT: Ako a kde ukladat zakaznicke customizacie vo VCS?
Zdravim! Moja otazka sa netyka priamo javy, preto som ju oznacil OT, ale s vyvojom velmi uzko suvisi a mnohi z vas tento problem riesili a verim ze aj vyriesili. Mame projekt, ktory obsahuje niekolko standalone javovskych modulov, t.j. standalone aplikacii, web aplikaciu a nejaky core, ktory je poskytovany modulom ako kniznica (jar). Problem je, ze aplikaciu je potrebne pre jednotlivych zakaznikov customizovat. Zakaznikov nie je velke mnozstvo (radove jednotky), ale pre kazdeho z nich sa robia upravy, ktore su len pre neho. Tieto customizacie su od loga a farbiciek v css webovej aplikacie, cez defaultne jazykove mutacie, samostatne schemy v DB az po upravy zdrojoveho kodu, ked napr. pre zakaznika X mozu byt baliky (v zmysle java packages) A, B.A a B.B, pre zakaznika Y to mozu byt B.B a C, etc. Problem je, ako udrziavat jednotlive customizacie vo VCS (konkretne pouzivame Subversion). Customizacie by mali byt dostatocne oddelene od core, ale zaroven by malo byt co mozno najjednoduchsie checkoutovat, buildovat, instalovat a testovat verziu pre kazdeho zo zakaznikov. Takze otazka je: Ako oddelujete zakaznicke customizacie od produktu a ako ich v pripade potreby na projekt aplikujete? Vdaka za rady a napady. J.
Re: Grafický nahled dokumentu
Souhlasím, rychlý tah na bránu je někdy nejlepší. Díky za tipy a know-how :-) Pavel Roman Kratochvil napsal(a): Zdravim, a nebo to zkuste binarne: pro MS Word: http://wvware.sourceforge.net/ pro PDF, PS, EPS, AI: ImageMagick + GhostScript (prikaz convert z ImageMagick, on uz si eventualne zavola GhostScript) ... -- Pavel Vedral -- Nez mi poslete prilohu .doc, .xls nebo .ppt, prectete si, prosim, WWW stranku uvedenou na poslednim radku signatury: http://www.gnu.org/philosophy/no-word-attachments.cs.html
Re: Spring + Hibernate: failed to lazily initialize a collection of role
JJ jasne to funguje, na internetu se o tehle metode dost pise. Neuvedl jsem ji, protoze pro mne byla nepouzitelna, protoze prave delam na aplikaci s RCP, tudiz mne webovy filtr nepomuze. Server zije porad a nejake requesty pro neho neplati. Ale pro webovku je to idealni, to uznavam. Ja vim, ze spring tu sessionu zavre, ale zajimalo by me, proc. Ja bych chtel prave konfiguraci, kde zustane otevrena, nebo kde ji reconnectne. V pripade, ze se bude pouzivat jenom jedna sessiona, tak mi lazy nacitani fungovat bude. V dokumentaci ke springu je mj. psano, ze prave rg.springframework.orm.hibernate3.support.OpenSessionInViewFilter by mel zajistit, aby sessiona zustala otevrena po dobu zpracovani celeho requestu. Stanislav Ulrych Benda Lukas wrote: Vysvetleni je strasne jednoduche. Pokud maji byt objekty nacitany pomoci lazy, musi mit odkaz na otevreny session. To znamena, ze po celou dobu zivota rodicovskeho objektu, musi byt session otevrena, co kdyby se nejaky lazy parametr mel zrovna nacist. To je znacne nehospodarne ne? Takze spring automaticky po ukonceni behu vlakna session uzavre. No ale pak zjevne nemuze fungovat lazy. Jak z toho? Prvni moznost je session zachytit a neumoznit jeji uvoneni. To znamena ze nechate vlakno ktere vlastni session zit. Brzi se ale dostanete do problemu. Takze druha moznost je vyuzit vlastni metodiku lazy nacitani. Logicky by se do kazde metody ktera vrati line nacitane objekty dalo pridat nacteni z nejakeho dao readeru, jenze pak je tu potrebne odchytit ukladani objektu rodicovskeho, aby se i lazy drzene objekty ukladali taky. Ale v male aplikaci je to suverejne nejlepsi reseni. V podstate se tak oprostite i od hibernate, vyhnete se spouste problemu a celou ORM si udelate sam na miru. Cas ktery spotrebujete na vytvareni takovehoto ORM modelu, je pri malych aplikacich (s malym mnozstvim tabulek) vyrazne nizsi nez kolik poterbujete na zkroceni hibernate. No ale ve vetsim projektu, se hibernate uz vyplati. Takze pak se logicky nabizi moznost AOP. Spring ma specialni AOP object pro komunikaci s hibernate. V definici pak vubec lazy nepouzivate a nacitani nechavate na springu, ktery vse zaridi pres AOP: bean id=jHasEvidHibernateInterceptor class=org.springframework.orm.hibernate3.HibernateInterceptor property name=sessionFactory ref bean=jHasEvidSessionFactory/ /property /bean bean id=krajTarget class=cz.apnetis.jhasevid.db.KrajClass property name=associationref bean=association//property /bean bean id=kraj class=org.springframework.aop.framework.ProxyFactoryBean property name=targetref bean=krajTarget//property property name=proxyInterfaces valuecz.apnetis.jhasevid.db.KrajInterface/value /property property name=interceptorNames list valuejHasEvidHibernateInterceptor/value /list /property /bean Kde association je jakykoli parametr ktery ma byt jednoduse predan. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Dobry den, mam prosbu o pomoc: Ve svem projektu pouzivam spring (1.2.6) a hibernate (3.1RC1) a nefunguje mi lazy inicializace mapovanych objektu : tomcat pise chybu: failed to lazily initialize a collection of role: beans.Project.phases, no session or session was closed konfigurace v msfchecklist-servlet.xml: bean id=sessionFactory class=org.springframework.orm.hibernate3.LocalSessionFactoryBean property name=dataSourceref bean=dataSource //property property name=configLocationvalueclasspath:hibernate.cfg.xml/value/property property name=configurationClassvalueorg.hibernate.cfg.AnnotationConfiguration/value/property property name=hibernateProperties props prop key=hibernate.dialect${hibernate.dialect}/prop prop key=hibernate.hbm2ddl.autoupdate/prop prop key= hibernate.show_sqltrue/prop /props /property /bean !-- Transactions -- bean id=transactionManager class=org.springframework.orm.hibernate3.HibernateTransactionManager property name=sessionFactoryref local=sessionFactory //property /bean bean id=dataStorageTarget class= businesslogic.DataStorageFacadeImpl property name=documentDAO ref=documentDAO / property name=documentInPhaseDAO ref=documentInPhaseDAO / property name=documentTypeDAO ref=documentTypeDAO / property name=phaseDAO ref=phaseDAO / property name=phaseInProjectDAO ref=phaseInProjectDAO / property name=projectDAO ref=projectDAO / property name=projectTypeDAO ref=projectTypeDAO / property name=roleDAO ref=roleDAO / property name=roleInProjectDAO ref=roleInProjectDAO / property name=signDAO ref=signDAO / property name=signRequestDAO ref=signRequestDAO / property name=userDAO
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Ted si nejsem jisty, jestli si spravne rozumime - ja se snazim, aby mi lazy initialization fungovala v ramci jednoho requestu, a to mi nefunguje a nevim v cem mam chybu. Lazy initialization pres vice requestu nepotrebuju a ani nechci. Muj problem je opravdu jenom v tom, ze mam v jednom requestu vice session. Co s tim? Benda Lukas wrote: JJ jasne to funguje, na internetu se o tehle metode dost pise. Neuvedl jsem ji, protoze pro mne byla nepouzitelna, protoze prave delam na aplikaci s RCP, tudiz mne webovy filtr nepomuze. Server zije porad a nejake requesty pro neho neplati. Ale pro webovku je to idealni, to uznavam. Ja vim, ze spring tu sessionu zavre, ale zajimalo by me, proc. Ja bych chtel prave konfiguraci, kde zustane otevrena, nebo kde ji reconnectne. V pripade, ze se bude pouzivat jenom jedna sessiona, tak mi lazy nacitani fungovat bude. V dokumentaci ke springu je mj. psano, ze prave rg.springframework.orm.hibernate3.support.OpenSessionInViewFilter by mel zajistit, aby sessiona zustala otevrena po dobu zpracovani celeho requestu. Stanislav Ulrych Benda Lukas wrote: Vysvetleni je strasne jednoduche. Pokud maji byt objekty nacitany pomoci lazy, musi mit odkaz na otevreny session. To znamena, ze po celou dobu zivota rodicovskeho objektu, musi byt session otevrena, co kdyby se nejaky lazy parametr mel zrovna nacist. To je znacne nehospodarne ne? Takze spring automaticky po ukonceni behu vlakna session uzavre. No ale pak zjevne nemuze fungovat lazy. Jak z toho? Prvni moznost je session zachytit a neumoznit jeji uvoneni. To znamena ze nechate vlakno ktere vlastni session zit. Brzi se ale dostanete do problemu. Takze druha moznost je vyuzit vlastni metodiku lazy nacitani. Logicky by se do kazde metody ktera vrati line nacitane objekty dalo pridat nacteni z nejakeho dao readeru, jenze pak je tu potrebne odchytit ukladani objektu rodicovskeho, aby se i lazy drzene objekty ukladali taky. Ale v male aplikaci je to suverejne nejlepsi reseni. V podstate se tak oprostite i od hibernate, vyhnete se spouste problemu a celou ORM si udelate sam na miru. Cas ktery spotrebujete na vytvareni takovehoto ORM modelu, je pri malych aplikacich (s malym mnozstvim tabulek) vyrazne nizsi nez kolik poterbujete na zkroceni hibernate. No ale ve vetsim projektu, se hibernate uz vyplati. Takze pak se logicky nabizi moznost AOP. Spring ma specialni AOP object pro komunikaci s hibernate. V definici pak vubec lazy nepouzivate a nacitani nechavate na springu, ktery vse zaridi pres AOP: bean id=jHasEvidHibernateInterceptor class=org.springframework.orm.hibernate3.HibernateInterceptor property name=sessionFactory ref bean=jHasEvidSessionFactory/ /property /bean bean id=krajTarget class=cz.apnetis.jhasevid.db.KrajClass property name=associationref bean=association//property /bean bean id=kraj class=org.springframework.aop.framework.ProxyFactoryBean property name=targetref bean=krajTarget//property property name=proxyInterfaces valuecz.apnetis.jhasevid.db.KrajInterface/value /property property name=interceptorNames list valuejHasEvidHibernateInterceptor/value /list /property /bean Kde association je jakykoli parametr ktery ma byt jednoduse predan. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Dobry den, mam prosbu o pomoc: Ve svem projektu pouzivam spring (1.2.6) a hibernate (3.1RC1) a nefunguje mi lazy inicializace mapovanych objektu : tomcat pise chybu: failed to lazily initialize a collection of role: beans.Project.phases, no session or session was closed konfigurace v msfchecklist-servlet.xml: bean id=sessionFactory class=org.springframework.orm.hibernate3.LocalSessionFactoryBean property name=dataSourceref bean=dataSource //property property name=configLocationvalueclasspath:hibernate.cfg.xml/value/property property name=configurationClassvalueorg.hibernate.cfg.AnnotationConfiguration/value/property property name=hibernateProperties props prop key=hibernate.dialect${hibernate.dialect}/prop prop key=hibernate.hbm2ddl.autoupdate/prop prop key= hibernate.show_sqltrue/prop /props /property /bean !-- Transactions -- bean id=transactionManager class=org.springframework.orm.hibernate3.HibernateTransactionManager property name=sessionFactoryref local=sessionFactory //property /bean bean id=dataStorageTarget class= businesslogic.DataStorageFacadeImpl property name=documentDAO ref=documentDAO / property name=documentInPhaseDAO ref=documentInPhaseDAO / property name=documentTypeDAO ref=documentTypeDAO / property name=phaseDAO ref=phaseDAO / property name=phaseInProjectDAO
Re: OT: Ako a kde ukladat zakaznicke customizacie vo VCS?
Branch pro kazdeho zakaznika a pak patchem proti head a build pres ant.
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Ted si nejsem jisty, jestli si spravne rozumime - ja se snazim, aby mi lazy initialization fungovala v ramci jednoho requestu, a to mi nefunguje a nevim v cem mam chybu. Lazy initialization pres vice requestu nepotrebuju a ani nechci. Muj problem je opravdu jenom v tom, ze mam v jednom requestu vice session. Co s tim? nemit v ramci jednoho HTTP requestu vice session :-). Jakym zpusobem ty session vyrabite? V pripade ze pouzivate Spring Transaction a predtim nekde na filtru mate OpenSesioninView, tak musi platit ze transakce dostane jednu a tu samo Hibernate session, ktera se uzavre az ve chvili kdy je cely request uzavreny. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */ __ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email __
Re: Spring + Hibernate: failed to lazily initialize a collection of role
Ale rozumime si. Ja jenom tvrdim, ze pro mne zadny request nefunguje, pokud delate aplikaci ktera je na desktopu, popripade kdyz delate server ke kteremu se pripojuje klient pres RMI (napriklad). Btw. do budoucna bude takhle resit i webove projekty. Udelam server (furtbezici) a na neho se bude JSP container napojovat pres RMI. Takze nebudu muset kvuli kazdemu dotazu znovu a znovu nacitat data z databaze, no a navic k tomu kdikoli prilepim RCP klienta. Takze Vam by mohlo pomoct tohle: http://wiki.apache.org/tapestry/FrequentlyAskedQuestions/SpringHibernate Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Ted si nejsem jisty, jestli si spravne rozumime - ja se snazim, aby mi lazy initialization fungovala v ramci jednoho requestu, a to mi nefunguje a nevim v cem mam chybu. Lazy initialization pres vice requestu nepotrebuju a ani nechci. Muj problem je opravdu jenom v tom, ze mam v jednom requestu vice session. Co s tim? Benda Lukas wrote: JJ jasne to funguje, na internetu se o tehle metode dost pise. Neuvedl jsem ji, protoze pro mne byla nepouzitelna, protoze prave delam na aplikaci s RCP, tudiz mne webovy filtr nepomuze. Server zije porad a nejake requesty pro neho neplati. Ale pro webovku je to idealni, to uznavam. Ja vim, ze spring tu sessionu zavre, ale zajimalo by me, proc. Ja bych chtel prave konfiguraci, kde zustane otevrena, nebo kde ji reconnectne. V pripade, ze se bude pouzivat jenom jedna sessiona, tak mi lazy nacitani fungovat bude. V dokumentaci ke springu je mj. psano, ze prave rg.springframework.orm.hibernate3.support.OpenSessionInViewFilter by mel zajistit, aby sessiona zustala otevrena po dobu zpracovani celeho requestu. Stanislav Ulrych Benda Lukas wrote: Vysvetleni je strasne jednoduche. Pokud maji byt objekty nacitany pomoci lazy, musi mit odkaz na otevreny session. To znamena, ze po celou dobu zivota rodicovskeho objektu, musi byt session otevrena, co kdyby se nejaky lazy parametr mel zrovna nacist. To je znacne nehospodarne ne? Takze spring automaticky po ukonceni behu vlakna session uzavre. No ale pak zjevne nemuze fungovat lazy. Jak z toho? Prvni moznost je session zachytit a neumoznit jeji uvoneni. To znamena ze nechate vlakno ktere vlastni session zit. Brzi se ale dostanete do problemu. Takze druha moznost je vyuzit vlastni metodiku lazy nacitani. Logicky by se do kazde metody ktera vrati line nacitane objekty dalo pridat nacteni z nejakeho dao readeru, jenze pak je tu potrebne odchytit ukladani objektu rodicovskeho, aby se i lazy drzene objekty ukladali taky. Ale v male aplikaci je to suverejne nejlepsi reseni. V podstate se tak oprostite i od hibernate, vyhnete se spouste problemu a celou ORM si udelate sam na miru. Cas ktery spotrebujete na vytvareni takovehoto ORM modelu, je pri malych aplikacich (s malym mnozstvim tabulek) vyrazne nizsi nez kolik poterbujete na zkroceni hibernate. No ale ve vetsim projektu, se hibernate uz vyplati. Takze pak se logicky nabizi moznost AOP. Spring ma specialni AOP object pro komunikaci s hibernate. V definici pak vubec lazy nepouzivate a nacitani nechavate na springu, ktery vse zaridi pres AOP: bean id=jHasEvidHibernateInterceptor class=org.springframework.orm.hibernate3.HibernateInterceptor property name=sessionFactory ref bean=jHasEvidSessionFactory/ /property /bean bean id=krajTarget class=cz.apnetis.jhasevid.db.KrajClass property name=associationref bean=association//property /bean bean id=kraj class=org.springframework.aop.framework.ProxyFactoryBean property name=targetref bean=krajTarget//property property name=proxyInterfaces valuecz.apnetis.jhasevid.db.KrajInterface/value /property property name=interceptorNames list valuejHasEvidHibernateInterceptor/value /list /property /bean Kde association je jakykoli parametr ktery ma byt jednoduse predan. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Dobry den, mam prosbu o pomoc: Ve svem projektu pouzivam spring (1.2.6) a hibernate (3.1RC1) a nefunguje mi lazy inicializace mapovanych objektu : tomcat pise chybu: failed to lazily initialize a collection of role: beans.Project.phases, no session or session was closed konfigurace v msfchecklist-servlet.xml: bean id=sessionFactory class=org.springframework.orm.hibernate3.LocalSessionFactoryBean property name=dataSourceref bean=dataSource //property property name=configLocationvalueclasspath:hibernate.cfg.xml/value/property property name=configurationClassvalueorg.hibernate.cfg.AnnotationConfiguration/value/property property name=hibernateProperties props prop key=hibernate.dialect${hibernate.dialect}/prop