Kam dat knihovnu pro Tomacat
Kam mam nahrat, nebo jak nastavit, popripade jaky parametr predat tomactovai 6.0, aby nacetl knihovnu kteoru potrebuje pro pripojeni k databazi? Problem je v tom, ze knihovna neni zavisla na projektu, tudiz to nebude v adresari projektu. Promenou prostredi CLASSPATH ocividne tomcat ignoruje a z .../Tomcat 6.0/lib ani ../Tomcat 6.0/shared/lib si ji nenacte. Lukas Benda
Re: Co jde v .NET a nejde v Jave?
Myslim, ze JAVA znamena programovaci jazyk, zakladni API a komunitu kolem toho. Stejen tak jako ostatni programovaci jazyky. Takze tak se na to divejte. Ja programuji v Delphi a JAVA. Ceska komunita kolem Delphi je silnejsi nez JAVA, Delphi jako nastroj je daleko vyspelejsi, nez napr. Eclipse, ale protoze Delphi je placene i komunita kolem neho vydava prevazne placene komponenty a frameworky. To byl duvod proc jsem nakonec presel na JAVA, api je daleko mensi a kompaktnejsi, tudiz lepe pruhledne. K frameworkum mam zdrojove kody ve kterych se da (narozdil od tech Delphovych) dobre vyznat. Nesnazte se tedy odtrhavat komunitu od programovaciho jazyka jako takoveho. P.S.: To o cem mluvite s tim propojenim dat s tabulkou to je prace RCP Spring RCP to resi presne tak jak si prejete, ale jde v tom o trochu dal. Pouziva Formularovi Model, ktery automaticky generuje (kdez chcete), nebo vas necha si ho nagenerovat sam, kdyz chcete v nem provest upravy. Tudiz do ruky dostavate silu obou pristupu, ne jen jednoho. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant ad 1) Ano TableModel si muze tahat veci i od nekud jinud, ale toto vy musite rucne nejak osetrit, musite to proste naprogramovat. ad 2) Prave by bylo pekne, kdybych mohl vytvorit jen Hib. Entity a JTable nejak rict ze ma rovnou pouzivat tyto entity (a tudiz bych uz se nemusel starat o prekladku dat z Entit do TableModelu). A takhle by snad nejak mohl fungovat JBoss Seam. petr __ Od: [EMAIL PROTECTED] Komu: Java konference@java.cz Datum: 02.11.2006 08:59 Předmět: Re: Co jde v .NET a nejde v Jave? 1. Table model neni nutne plnit, ten si veci muze jenom pretahovat od nekud jinud, od sveho modelu. To jste to mozna jenom nepouzil spravne. 2. Neni mi jasne proc je to vyhoda .NET, kdyz naprogramuju model, ktery si bude data tahat primo z Hibernate entit, pak mam to same co v .NET, ne? 3. Nehledal jsem, ale nedivil bych se, kdyby to uz nekdo udelal za me ... :-)) To je vyhoda Javy ... Petr Synek napsal(a): Myslim ze to neni nic proti MVC. Je to jen zjednoduseni ve smyslu jako by JTable mohl pouzivat primo Hibernate entity aniz by bylo nutne predtim rucne plnit javax.swing.table.TableModel z Entit. S tim ze se zaroven automaticky zjisti jmena a typy sloupcu (a samozrejme ze je take mozne dodatecne toto implicitni mapovani sloupcu upravit, pokud nevyhovuje). Podobne jednoduse by snad mohl fungovat JBoss Seam pro JSF (viz. http://www.onjava.com/pub/a/onjava/2006/03/15/jboss-seam.html), ale jeste jsem si to cele nestihl precist. petr __ Od: [EMAIL PROTECTED] Komu: Java konference@java.cz Datum: 01.11.2006 10:13 Předmět: Re: Co jde v .NET a nejde v Jave? Napr. GUI nebo Web prvky pracuji primo s datovmi objekty (ADO.NET), takze vetsinou odpada rucni plneni Model objektu z Entit, tedy vice mene odpada rucni prehazovani kupy dat tam a zase zpet (i kdyz napr. Jakarta BeanUtils lrecos v tomhle smeu v Jave take zjednodusuji, ale v .NETu tohle funguje implicitne a automaticky). No to bych zrovna jako vyhodu moc nepovazoval. To je pak o tom, ze se vsechno toci okolo GUI, ktere zobrazuje i drzi data, coz neni dobry pristup (rozhodne to neni podle MVC, ale on Microsoft nikdy MVC moc nebral vazne). Pokud MVC chci pouzit, pak musim data z modelu kopirovat do GUI :-(( Me se naopak i u desktopovych aplikaci striktni pouziti MVC vzdy vyplatilo, i kdyz i trivialni aplikace to znamena vic prace, ale prehlednost kodu a jeho rozsiritelnost jednoznacne hovori ve prospech tohoto reseni. (pravda nikdy jsem si GUI neklikal, protoze me to prislo hrozne omezujici ) Abych se ale vyjadril k tematu, vse je to o tom, ktera platforma vyhraje. To je ta spravna volba Navic jde i o filosofickou otazku, ktera podle me trochu zanikla ... chcete mit volnost a nebo jasne danou cestu, podle toho si vyberte. P.S. Uz je .NET dostatecne stabilni, aby jej Microsoft nemenil pod rukama jako se stalo mezi verzi 1.X a 2.0 ... to je argument pro Javu, mozna ... -- 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
Re: Maven kodovani zdroju
Michal Palička napsal(a): Dobry den, existuje plugin, ktery to umi. Jedna se vlastne o obaleny kus skriptu pro ANT. Autorem je Jakub Pawlowicz. http://www.jakubpawlowicz.com/blog/2006/03/19/maven_native2ascii_plugin/ Plugin jsem nainstaloval podle navodu a mvn -U install a nic se nezmenilo. Mam jeste nejak pozmenit pomy? Protoze na strankach je psano ze to funguje jako kouzlem. Ale vypada to ze ja jsem proti tomuto druhu magie rezistni :( Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant mp. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Benda Lukas Sent: Friday, October 20, 2006 19:59 To: Java - diskuse Subject: Maven kodovani zdroju Pouzivam ke kompilovani Maven2. V antu jsem pro cestinu pouzival native2ascii encoding=UTF-8 src=${resource.dir} dest=${class.dir}/resource includes=**/messages/*.properties / Jenze v mavenovi nevim jak ho dokopat k tomu aby konvertoval soubory do asci aby se mi to zobrazovalo spravne. Zkousel jsem jak nastaveni: plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version2.0.1/version configurationp source1.5/source target1.5/target encodingutf-8/encoding /configuration /plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-resources-plugin/artifactId version2.2/version configuration encodingutf-8/encoding /configuration /plugin Ktere ale nedela ocividne vubec nic. Tak nastaveni pomoci anta: plugins plugin artifactIdmaven-antrun-plugin/artifactId executions execution phasegenerate-sources/phase configuration tasks taskdef name=native2ascii classname=org.apache.tools.ant.taskdefs.optional.Native2Ascii classpathref=maven.dependency.classpath classpath pathelement path=maven.dependency.classpath/ pathelement location=${java.home}/../lib/tools.jar/ /classpath /taskdef native2ascii src=src/main/resources/ dest=src/target/resources/ includes=**/*.properties / /tasks /configuration goals goalrun/goal /goals /execution /executions /plugin /plugins Ktere zase konci havarii anta (s blize neurcenou chybou). Jak tento problem resite vy? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
Maven kodovani zdroju
Pouzivam ke kompilovani Maven2. V antu jsem pro cestinu pouzival native2ascii encoding=UTF-8 src=${resource.dir} dest=${class.dir}/resource includes=**/messages/*.properties / Jenze v mavenovi nevim jak ho dokopat k tomu aby konvertoval soubory do asci aby se mi to zobrazovalo spravne. Zkousel jsem jak nastaveni: plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version2.0.1/version configurationp source1.5/source target1.5/target encodingutf-8/encoding /configuration /plugin plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-resources-plugin/artifactId version2.2/version configuration encodingutf-8/encoding /configuration /plugin Ktere ale nedela ocividne vubec nic. Tak nastaveni pomoci anta: plugins plugin artifactIdmaven-antrun-plugin/artifactId executions execution phasegenerate-sources/phase configuration tasks taskdef name=native2ascii classname=org.apache.tools.ant.taskdefs.optional.Native2Ascii classpathref=maven.dependency.classpath classpath pathelement path=maven.dependency.classpath/ pathelement location=${java.home}/../lib/tools.jar/ /classpath /taskdef native2ascii src=src/main/resources/ dest=src/target/resources/ includes=**/*.properties / /tasks /configuration goals goalrun/goal /goals /execution /executions /plugin /plugins Ktere zase konci havarii anta (s blize neurcenou chybou). Jak tento problem resite vy? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
Serializace objektu, ktery obsahuje neserializovane cleny
Mam tridu, ktera je serializable a obsahuje protected parametr logger. Chci takovou tridu preda pomoci RMI, ale havaruje to prave na tom, ze logger neni serializovany. Prve jsem byl presvedcen, ze privatni objekty se neserializuji, jenze ono jo. Coz mne docela mrzi, protoze vlastne kazda moje trida ma logger. Musim tedy pro kazdou tridu definovat metodu writeExternal(), readExternal(), nebo se to da nejak obejit. Pomuze kdyz bude logger private? Neexituje nejaka anotace kterou bych oznacil cleny objektu ktere se namaji serializovat? Co se stane kdyz pak chce objekt zalogovat? Jak takovy problem resite? Ta chyba je konkretne tato: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: org.apache.log4j.Logger S pozdravem Lukáš Benda [EMAIL PROTECTED] APNetsoft s.r.o. Hradecká 15 746 01, Opava tel.: +420 553 642 111 fax.: +420 553 619 205 mobil.: +420 777 577 054 http://www.apnet.cz
Re: Chytre knihy o swingu
Je rozdil by dokazat mohlo a dokze. Nechapu proc si to porad pletete. Oto 'tapik' Buchta wrote: Take mne tento flame nezajima, ale doporucuji vsem, aby netvrdili o produktu, ktery neznaji, ze ten produkt je to ci ono, obzvlaste lidem, kteri jsou v praci s onim produktem fakt dobri. Uvedu priklad: pred 13 lety, kdyz jsem zacinal hloubs pronikat do sveta UNIXu, jsem si spoustel Makubovo makro ve VI na pruchod bludistem :-D Jen pro poradek, to macro jsem nenapsal, jenom nasel, zminka o nem je kdesi hluboko v kompletni dokumentaci Vi :-) Mimochodem, Vi makra maji silu Turingova stroje, a ten, jak kazdy informatik ma vedet, dokaze podle Church-Turingovy teze provest kazdy algoritmus, ktery je proveditelny, cili cokoliv. Tudiz kdo chce tvrdit, ze Vi neco nedokaze, musi se poprat primo s Turingem a Churchem. Oni uz jsou teda oba mrtvi, ale obrazne mysleno. :-) Eh, uz jsem zabrednul, tak toho radis necham. Pro hracicky jenom odkaz na to bludiste: http://www.vanhemert.co.uk/vim/ Makub
Re: RMI - tříby stub a skeleton
No bud to udelate pres nastroj rmic, nebo pak zalezi na tom ktery nastroj pro building pouzivate. Ant, nebo Maven? Podle toho pak upravte build.xml, nebo pom.xml. Prikladu je na netu docela dost. Staci dat Ant rmic, nebo Maven rmic Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Dobrý den. Nevíte někdo jak přinutit Netbeans 5.5 RC1 aby vytvářelo třídy Stub a Skeloton pro RMI? Chci volat Callbak funkce ze serveru na klienta a metoda UnicastRemoteObject..exportObject(_test) mi vrací tuto vyjimku Stub class not found: remoteLib.objects.Test_Stub; nested exception is: java.lang.ClassNotFoundException: remoteLib.objects.Test_Stub kde _test = new Test() a Test je public class Test extends UnicastRemoteObject implements RowSetsCompleted{ public Test() throws RemoteException{ super(); } public void rowsSetsCompleted() throws RemoteException{ javax.swing.JOptionPane.showInputDialog(AHOJ); } }
Re: Chytre knihy o swingu
Jenze Vim je textovy editor, kdezto Emacs je IDE, tam bych videl ten zakladni rozdil. Ono totiz je neco pravda na tom: Emacs je dobry operacni system ... :)). Samozrejme, kdyz by se jednalo o programovani v Pascalu, tak bych emacs asi nepouzival, ale prava ze pro Java ma rozsireni JDEE, ktere z Emacsu dela plnohodnotne IDE. 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: Jenom muzu rict, ze jsem to zkousel jak s Eclipse tak s Netbeans a k srdci mi neprirostlo ani jedno z techto vyvojovych prostredi, ja tedy pouzivam pro vyvoj aplikaci Emacs (respektive XEmacs). Zkuste IntelliJ IDEA, opustil jsem kvuli nemu svuj oblibeny Vim :-) Makub
Re: Chytre knihy o swingu
EE tady se nejedna o valku, ze bych snad rekl ze je Vim horsi. To ze mi neprirostl k srdci, jeste neznamena ze musi byt horsi. Ale paklize porovnavame IDE, tak Vim se porovnavat proste neda, protoze to neni IDE, ale textovy editor. Nema ty funkce ktere ma IDE, doplnovani nazvu funkci, code browser atp. atd. Pak je jasne ze prejdete od Vim k InteliJ, kdyz delate v Java protoze InteliJ je IDE. Tot vse. Benda Lukas wrote: Jenze Vim je textovy editor, kdezto Emacs je IDE, tam bych videl ten zakladni rozdil. Tohle je ta nejstarsi svata valka na Internetu, primo matka vsech flamewars :-) http://en.wikipedia.org/wiki/Editor_war Do toho nejdu :-) Makub
Re: Chytre knihy o swingu
No jestli je to lepsi nebo ne, nemuzu posoudit, protoze jsem se nikdy nesnazil udelat nejaky relevantni srovnani. Jenom muzu rict, ze jsem to zkousel jak s Eclipse tak s Netbeans a k srdci mi neprirostlo ani jedno z techto vyvojovych prostredi, ja tedy pouzivam pro vyvoj aplikaci Emacs (respektive XEmacs). Nehlede na to, jak rikam. Spring ma snahu zastitit kompletni vyvoj aplikace. Takze bych se na to dival s jineho uhlu. Pouzit JBoss a Tomcat a JGoodies a Eclipse RCP a JSF, nebo pouzit proste Spring? Vetsinou totiz delate jak aplikace pro web tak pro desktop, takze proto jsem sahl po springu. Nemusim se ucit padesat rozdilnych metodik, kde je i komunita pokazde jina, takze s moji specifickou konfiguraci mi nikdo neumi poradit. Tady mam vsechno pod jednou strechou. A jak rikam. Muzete uvazovat jestli je lepsi programovat podle EJB3 a nechat aplikaci bezet v kontejneru. Nebo si vypomuzete Springem (ale nadale to nechate bezet v kontejneru a budete pouzivat EJB3). No a posledni moznost je pouzit Spring bez kontejneru a na EJB se v zasade vykaslat. Ja si zvolil treti cestu, protoze pro muj ucel se skvele hodi, dobre se tim vytvari desktopova aplikace, ktera je ale automaticky viceuzivatelska a ma webove rozhrani (a pritom se nemusim stvat s automatickou instalaci kontejneru, kdyz to budu prodavat jako krabicovy software). Obodobne je to i s podporou RCP. Nehlede na to, ze se neuvazuji na jedine vyvojove prostredi :)) Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Ahoj, odpovídám na zprávu z úterka, 10. října 2006, kterou Benda Lukas napsal(a) v 23:59:47: No a není pak lepší rovnou použít Eclipse RCP nebo Netbeans? --- Původní zpráva --- Odesilatel: Benda Lukas [EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 10. října 2006, 23:59:47 (GMT +0200) Přílohy: none msgid:[EMAIL PROTECTED] B No nejlepsi je projit diskusi. Protoze je projekt hodne mlady, tak k B nemu dokumentace jeste moc neni. Ale je tam kompletni tutorial jak B vytvorit aplikaci. Konec původní zprávy
Re: OT: Ako a kde ukladat zakaznicke customizacie vo VCS?
Anebo se na to da rict, pouzivejte mavena :)) Taky jsem se snazil tohle vsechno udelat v antu, ale pak jsem si nainstaloval mavena a ten presne to co popisujete dela vlastne automaticky, paklize neurcite jinak. Takze se vase praxe jevi jako spravna :)) Ahoj, my pouzivame pro deleni zdrojovych kodu tri zakladni organizacni jednotky - library, product line a project. Kazdy konkretni item dane kategorie sestava z jednoho ci vice jaru ktere ho tvori. Liby jsou obecne systemove knohovny a frameworky bez konkretni business funkcnosti, ale zapouzdrujici nejake systemove funkce - pristup do databaze, apod... Jedna knihovna muze pouzivat jinou knihovnu, nicmene cyklicke odkazy nejsou povoleny. Produktove linie jsou knihovny se specialni business funkcnosti, vztahujicimu se ke konkretnimu nicmene zobecnitelnemu business problemu. Produktova linie muze vnitrne pouzivat obecne knihovny nebo jine produktove linie. Cyklicke odkazy mezi produktovymi liniemi nejsou povoleny Projekt pak znamena jednu konkretni implementaci, jeden konkretni vysledny produkt (napr. pro jednoho konkretniho zakaznika s jeho specifiky, apod.) Projekt muze pouzivat (v instalacnim setu obsahovat) jak obecne knihovny, tak i produktove linie, projekty vzajemne se ale pouzivat nesmi. Prirozene, pokud je nejaka funkcnost ktera se ma chovat jinak na konkretnim projektu, muze byt nutne to zohlednit nejakou konfiguracni moznosti v produktove linii, nekdy pomuze zmena factory (resp. zmena konfigurace u aliasu objektu, vytvareneho pod timto obecnym aliasem v nadrazene produktove linii tak aby smeroval na zmenenou implementaci)... Zda se nam, ze to docela vyhovuje sdileni zdroju i v pripade jinych programovacich jazyku a ruznych typu projektu. Diky tomuto deleni je mozne vzdy separatne otestovat uvedene komponenty nezli se poskladaji dohromady (kazdy jar s produktivnimi tridami ma i sveho partnera s develop tridami, kde jsou m.j. JUnit testy apod.). Konkretne v Jave delime pak projekty na vrstvy - prezentacni vrstva (pl), fasady business vrstvy (bl facade) a jadro business vrstvy (bl core) a vrstvu pristupu k datum (dal) - nadrazena vrstva smi pouzivat vzdy jen podrazenou - ale to je asi celkem bezna zalezitost. Pokud se tyka verzovani, i kdyz Subversion nepouzivame (nas VCS neumi historii adresaru coz je pri javovskem strukturovani docela problem), pouzivame obecne pouzitelny princip - verzujeme jednotlive jary pri jejich buildu automaticky antem a dohromady je pak oznacime labelem ve VCS - pak jsou vsechny jary spadajici k danemu produktu oznacene jednim labelem. Vnitrne jary pak v manifestu obsahuji knihovny i s verzemi, ktere je nutno mit, aby dana funkcnost korektne fungovala (knihovny i s jejich verzemi se kterymi byla dana knihovna zkompilovana a tedy i otestovana). Protoze se vytvari pro jistotu vzdycky i jary se zdrojaky a s dokumentaci dane verze plus v pripade potreby jdiff pro rozdilovou dokumentaci a to vse se pak oznacuje i labelem ve VCS, mame jistotu ze i v pripade uzivatelske nebo systemove chyby VCS jsme schopni zrekonstruovat odpovidajici stav (resp. mame ho dvojmo - jednou primo jako verzi zdrojovych souboru primo ve VCS a jednou jeste v jaru vzdy pro danou verzi). Build antem pak umi i prekompilovat v pripade potreby celou kaskadu vzajemne se pouzivajicich podprojektu (jaru) - jeste tedy se ty jary musi rucne checkinovat a checkoutovat, ale to se obecne da taky zvladnout automaticky - tim ze se verzovani posunuje v praxi z urovne trid na uroven jaru se cela vec docela zjednodusuje. Samozrejme se snazime mit od jednoho produktu co nejmene verzi, nastesti nas prilis netrapi muset delat paralelni vyvoj nove funkcnosti (nepocitam opravy) pro vice verzi jednoho produktu, to je celkem malokdy a snad se tomu da temer vzdy administrativne predejit... Nicmene pokud je to nutne napr. pro jednoho zakaznika udelat nejakou zmenu specifickou a narychlo, melo by to zasahnout jen jeho projekt a ostatni projekty to snad nezasahne. Tolik teorie :-). Ahoj, Artur. - Original Message - From: Benda Lukas [EMAIL PROTECTED] To: Java konference@java.cz Sent: Tuesday, October 10, 2006 6:04 PM Subject: Re: OT: Ako a kde ukladat zakaznicke customizacie vo VCS? Asi je to otazka poctu zakazniku, firemni politiky a schopnosti daneho zarizeni. Ale ja resim, vse pomoci parametru, tudiz, aplikace umi vzdy vse jen je nutno ji nastavit tak aby to delala. Je sice pravda, ze odmazani kusu kodu, nebo prepsani je casove mene narocne, ale vetsinou tu upravu casem chce i nekdo jiny a hlavne nemusim pro kazdeho zakaznika delat zvlast kompilaci. Ty parametry jsou v XML souboru nastavene pres spring. Mam i zarizeni (ctecka carovych kodu), ktera ma ruzna omezeni a tam se bohuzel musim uchylovat prave k specialnimu programu pro kazdeho zakaznika, ale musim rict ze mi to velmi nevyhovuje. Nejhorsi je kdyz prijdu k novemu potencialnimu zakaznikovi a predvadim mu schopnosti onoho zarizeni a pri
Re: OT: Ako a kde ukladat zakaznicke customizacie vo VCS?
Asi je to otazka poctu zakazniku, firemni politiky a schopnosti daneho zarizeni. Ale ja resim, vse pomoci parametru, tudiz, aplikace umi vzdy vse jen je nutno ji nastavit tak aby to delala. Je sice pravda, ze odmazani kusu kodu, nebo prepsani je casove mene narocne, ale vetsinou tu upravu casem chce i nekdo jiny a hlavne nemusim pro kazdeho zakaznika delat zvlast kompilaci. Ty parametry jsou v XML souboru nastavene pres spring. Mam i zarizeni (ctecka carovych kodu), ktera ma ruzna omezeni a tam se bohuzel musim uchylovat prave k specialnimu programu pro kazdeho zakaznika, ale musim rict ze mi to velmi nevyhovuje. Nejhorsi je kdyz prijdu k novemu potencialnimu zakaznikovi a predvadim mu schopnosti onoho zarizeni a pri predvadeni nejake Cool funkce zjistim, ze ta je ve verzi pro jineho zakaznika nez mam prave nahrano v ctecce, to by mne vzdycky mohl cert urvat. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant 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: Chytre knihy o swingu
Jako halvni rozdil mezi Spring RCP a JGoodies bych videl, ze JGoodies je zameren jen na formulare, kdezto Spring na beh cele aplikace. Kdyz se jedna o formulare, tak tam se vytvareji vcelku jednoduse. Skracene. setFormObject(object); formBuilder.add("polozka1"); formBuilder.add("polozka2"); formBuilder.add("polozka3"); formBuilder.add("polozka4"); formBuilder.add("polozka5"); formBuilder.getForm(); A muzete si zvolit ruzne alyouty, GridBag, TableBag. To uz je na vas. Pokud mam formularovy objekt treba takovy: String polozka1; -- Zobrazi se jako policko do ktereho se da vlozit libovolny text Integer polozka2; -- Zobrazi se jako policko do ktereho se da vlozit jenom cislo Enum polozka3; -- Zobrazi se jako rozbalovaci seznam s moznostmi z vyctu. S tim, ze lozkalizovane nazvy polozek vezme ze zdroje zprav. Date polozka4; -- Zobrazi se jako NachoCalendar (mozne je i calendar z JGoodies, ale tam je obecne problem s lokalizaci), popripade jakykoli jiny kalendar kdyz si na to udelas data binder Selectable polozka5; -- No a tady tohle se zobrazi podle toho jaky databinder vytvoris a cim ty data nacpes. Takze nekdy to mam jako List, nekdy jako ComboBox to uz je na tobe. Proste podedis z ComboBoxBinder a naplnis ten objekt datama jake potrebujes. Co se tyce toho validatoru, tak tam je to postavene na modulu springu validator. Takze to ma ty vlastnosti. Samozrejme ze validator musis povetsinou napsat sam. Nekdy se to da udelat jenom s pomoci regularnich vyrazu, nekdy je to potreba sprogramovat jako funkci. Treba validator pro wizarda, ktery chce Jmeno, Prijmeni a rodne cislo, s tim ze vsechno ve smysluplnem tvaru (ve jmene treba neni mezera, nebo cislo atp., rodne cislo ma nalezitosti rodneho cisla), jsem udelal takto: /** Rules for creating new member of organization * @return rules for creating member */ private final Rules createMemberRules() { return new Rules(NewMember.class) { protected void initRules() { add("rodneCislo", getRodneCisloValueConstraint()); add("firstName", getNameValueConstraint()); add("secondName", getNameValueConstraint()); } }; } /** Methode which make contrains for new name * @return complex contrains. Requird, max length and regexp */ private final Constraint getNameValueConstraint() { return all(new Constraint[] {required(), maxLength(MAX_NAME_LENGTH), regexp("\\D*", "alphabetic")}); } /** Methode which return contrains for new Rodne cislo * @return coplex contrains and complex regexp */ private final Constraint getRodneCisloValueConstraint() { String regexpMesice31 = "([05][13578](([012]\\d)|(30)|(31)))"; String regexpMesice30 = "([05][469](([012]\\d)|(30)))"; String regexpMesic2 = "((([02468][048])|([13579][26]))" + "([05]2(([01]\\d)|(2\\d" + "|" + "(\\d{2}[05]2(([01]\\d)|(2[0-8])))"; String regexpMesic11 = "([16]1(([012]\\d)|(30)))"; String regexpMesic12 = "([16]2(([012]\\d)|(30)}(31)))"; String regexpMesice = "(" + regexpMesice31 + "|" + regexpMesice30 + "|" + regexpMesic11 + "|" + regexpMesic12 + ")"; String regexpRodneCislo = "((" + regexpMesic2 + ")|(\\d{2}" + regexpMesice + "))/\\d{3,4}"; return all(new Constraint[] {required(), maxLength(MAX_RODNECISLO_LENGTH), regexp(regexpRodneCislo)}); } Ten regularni vyraz pro rodne cislo by mozna sel napsat i jednoduseji, ale ja zase v regularech nejsem tak sbehli. Kazdopadne az na delitelnost jedenacti (ktera fakt nevim jak se v regularu dela) kontroluje vsechno (vcetne prestupnych roku a ctyrech cifer na konci po roku 53). Ahoj, odpovídám na zprávu z úterka, 10. října 2006, kterou Benda Lukas napsal(a) v 18:21:45: No, součástí JGoodies je i Validation framework, který přesně takové křížky umí, ale přijde mi to docela složité. Respektive trochu moc upsané. Samotný JGoodies taky dokáže zcela řídit, kdy má změna ve formuláři promítnout do datového modelu, takže to Spring asi prostě jen převzal. I když možná to zjednodušil ;-) Tam se ty formuláře konfigurují jak? Je nato nějaké XML nebo anotace? V případě JGoodies musím sám napsat třídu zajišťující validaci, sám pro každý formulář provést mapování, atd. U toho validátoru jsem přišel na zajímavou věc. Buďto lze docílit toho, aby se nevyplněné položky modře podsvítily nebo jde chybně vyplněné označit právě tím křížkem, ale nejde to zkombinovat, nechápu proč. O to podsvícení nebo zvýraznění se starají dva různé handlery a nelze použít oba. Leda si napsat vlastní handler. Docela mě to překvapilo. --- Původní zpráva
Re: Chytre knihy o swingu
No spring ma moznost pouzit externi editory pro tvorbu formu. JJ presne o tom. No nejlepsi je projit diskusi. Protoze je projekt hodne mlady, tak k nemu dokumentace jeste moc neni. Ale je tam kompletni tutorial jak vytvorit aplikaci. Díky za informace, je to nesmírně zajímavé. Maličko je problém v tom, že pro tvorbu formulářů používám Matisse, takže namapování musím provést až pak dodatečně. Rozhodně mě ale Spring zajímá. Jinak je řeč o tomto, že? http://spring-rich-c.sourceforge.net/ Víte ještě o nějakém dobrém zdroji ukázek? --- Původní zpráva --- Odesilatel: Benda Lukas [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 10. října 2006, 22:16:54 (GMT +0200) Přílohy: Zpráva.html msgid:[EMAIL PROTECTED] Jako halvni rozdil mezi Spring RCP a JGoodies bych videl, ze JGoodies je zameren jen na formulare, kdezto Spring na beh cele aplikace. Kdyz se jedna o formulare, tak tam se vytvareji vcelku jednoduse. Skracene. setFormObject(object); formBuilder.add(polozka1); formBuilder.add(polozka2); formBuilder.add(polozka3); formBuilder.add(polozka4); formBuilder.add(polozka5); formBuilder.getForm(); A muzete si zvolit ruzne alyouty, GridBag, TableBag. To uz je na vas. Pokud mam formularovy objekt treba takovy: String polozka1; -- Zobrazi se jako policko do ktereho se da vlozit libovolny text Integer polozka2; -- Zobrazi se jako policko do ktereho se da vlozit jenom cislo Enum polozka3; -- Zobrazi se jako rozbalovaci seznam s moznostmi z vyctu. S tim, ze lozkalizovane nazvy polozek vezme ze zdroje zprav. Date polozka4; -- Zobrazi se jako NachoCalendar (mozne je i calendar z JGoodies, ale tam je obecne problem s lokalizaci), popripade jakykoli jiny kalendar kdyz si na to udelas data binder Selectable polozka5; -- No a tady tohle se zobrazi podle toho jaky databinder vytvoris a cim ty data nacpes. Takze nekdy to mam jako List, nekdy jako ComboBox to uz je na tobe. Proste podedis z ComboBoxBinder a naplnis ten objekt datama jake potrebujes. Co se tyce toho validatoru, tak tam je to postavene na modulu springu validator. Takze to ma ty vlastnosti. Samozrejme ze validator musis povetsinou napsat sam. Nekdy se to da udelat jenom s pomoci regularnich vyrazu, nekdy je to potreba sprogramovat jako funkci. Treba validator pro wizarda, ktery chce Jmeno, Prijmeni a rodne cislo, s tim ze vsechno ve smysluplnem tvaru (ve jmene treba neni mezera, nebo cislo atp., rodne cislo ma nalezitosti rodneho cisla), jsem udelal takto: /** Rules for creating new member of organization * @return rules for creating member */ private final Rules createMemberRules() { return new Rules(NewMember.class) { protected void initRules() { add(rodneCislo, getRodneCisloValueConstraint()); add(firstName, getNameValueConstraint()); add(secondName, getNameValueConstraint()); } }; } /** Methode which make contrains for new name * @return complex contrains. Requird, max length and regexp */ private final Constraint getNameValueConstraint() { return all(new Constraint[] {required(), maxLength(MAX_NAME_LENGTH), regexp(\\D*, alphabetic)}); } /** Methode which return contrains for new Rodne cislo * @return coplex contrains and complex regexp */ private final Constraint getRodneCisloValueConstraint() { String regexpMesice31 = ([05][13578](([012]\\d)|(30)|(31))); String regexpMesice30 = ([05][469](([012]\\d)|(30))); String regexpMesic2 = ((([02468][048])|([13579][26])) + ([05]2(([01]\\d)|(2\\d + | + (\\d{2}[05]2(([01]\\d)|(2[0-8]))); String regexpMesic11 = ([16]1(([012]\\d)|(30))); String regexpMesic12 = ([16]2(([012]\\d)|(30)}(31))); String regexpMesice = ( + regexpMesice31 + | + regexpMesice30 + | + regexpMesic11 + | + regexpMesic12 + ); String regexpRodneCislo = (( + regexpMesic2 + )|(\\d{2} + regexpMesice + ))/\\d{3,4}; return all(new Constraint[] {required(), maxLength(MAX_RODNECISLO_LENGTH), regexp(regexpRodneCislo)}); } Ten regularni vyraz pro rodne cislo by mozna sel napsat i jednoduseji, ale ja zase v regularech nejsem tak sbehli. Kazdopadne az na delitelnost jedenacti (ktera fakt nevim jak se v regularu dela) kontroluje vsechno (vcetne prestupnych roku a ctyrech cifer na konci po roku 53). Ahoj, odpovídám na zprávu z úterka, 10. října 2006, kterou Benda Lukas napsal(a) v 18:21:45: No, součástí JGoodies je i Validation framework, který přesně takové křížky umí, ale přijde mi to docela složité. Respektive trochu moc upsané. Samotný JGoodies taky dokáže zcela řídit, kdy má změna ve formuláři promítnout do datového modelu, takže to Spring asi
Re: Chytre knihy o swingu
V tomhle ohledu zustavam zcela verny springu. A proto pouzivam i Spring-RCP. Builduji si to sam, vzdycky tak jednou za mesic (stahnu z SVN a spustim mavena, uplne jednoduche :)). Zatim jsem se dostal do faze, ve ktere mi u zchodi komplet cele GUI a jeste dodelavam server. Data Bindig, je resen jako formularove modely. Nakonec vsechno ukladam pres Spring + Hibernate, ale samozrejme by nebylo problem pouzit Spring JPA. Ze startu mi sice chvili trvalo, nez jsem se do toho dostal. Spoustu veci je nutno pochopit ze zdrojaku, ale kdyz je pochopite, tak to uz jde jak po masle. Takze ja doporucuju Spring RCP Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Ahoj, odpovídám na zprávu z pátku, 06. října 2006, kterou URBAN Leos napsal(a) v 15:41:00: Já jsem přesně v tom stejném stavu. Postupně stále zkouším nové a nové postupy, ale žere to dost čas. Ono navíc není řečeno, že i kdyby taková kniha byla a popisovala tam nějaký konkrétní postup, že by ten postup byl nejlepší. Zatím jsem se uchýlil k Hibernate, JPA, JGoodies databinding a občas ještě něco navíc. Však zde napište, co považujete za nejlepší a třeba se najde někdo, kdo navrhne něco lepšího a pro ty další to bude tip, co zase naopak zkusit. --- Původní zpráva --- Odesilatel: URBAN Leos [EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 6. října 2006, 15:41:00 (GMT +0200) Přílohy: none msgid:[EMAIL PROTECTED] U Ahoj, U neprimo odkazuji na prispevek Lukase B. s prosbou zda mi nekdo nemuze U doporucit podobne chytre knihy pro Swing? U Nejlepe neco kde by byla rozebrana nejaka aplikace pro praci s daty U (umyslne nepisu databazi protoze bych radsi EJB3 ale to bych asi chtel moc). U Ja jsem stale ve stavu kdy to sice napisu ale na konci mam pocit ze se U to melo delat nejak jinak :-((( U Diky a hezky vikend, U Leos Ja bych spis doporucil knihy o RCP. Dobre jsou: **Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications* Konec původní zprávy
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: 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
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
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
Re: Spring + Hibernate: failed to lazily initialize a collection of role
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 property name=transactionAttributeSource bean class=org.springframework.transaction.annotation.AnnotationTransactionAttributeSource / /property /bean Ve web.xml pouzivam: filter filter-namehibernateFilter/filter-name filter-class org.springframework.orm.hibernate3.support.OpenSessionInViewFilter /filter-class init-param param-namesingleSession/param-name
RMI server - nabizene objekty
Jak poznam ktere objekty mi RMI registr nabyzi na danem portu? Jde mi o to, ze jsem vytvoril client a server. Server jsem spustil a client se k nemu neumi prihlasit. Ted nevim jestli je chyba na strane client, nebo na strane server. Jak poznam ze objekt serveru je v registru a je skutecne nabizen clientum? Da se nekde zjistit seznam nabizenych objektu danym registrem? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
RMI security manager, DB
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
Re: Hibernate + Spring opakovany navrat objektu
No prave ze na kraj 1 mam navazane pouze dva okresy. A obdobne jsem to taky spatlal, ze jsem odebral duplicitni kraj, jenze to mi pripadne docela na hlavu. Jinak to vybiram loadAll(Kraj.class), takze HQL nepouzivam. Okresy jsem drive z kraju dostaval pres vlastnost ListIOkres, ale tedka jsem to prekopl na SetIOkres ale jeste jsem nekontroloval jestli mi nepok*vi poradi. 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 napsal(a): Mam strukturu Kraj (1 - *) Okres (1 - *) Organizace (n - m) Clen organizace (1 - *) Dalsi ruzne detaily clena Aktualne mam vlozene dva Kraj, v prvnim mam dva okresy, v druhem mam jeden okres. V kazdem okresu mam jednu organizaci (jenom v prvnim okresu prvniho kraje mam dve organizace). V organizacich prvniho okresuprvniho kraje mam pokazde jednoho clena. Vazby 1 - * jsou realizovane pres FK v detail tabulce. Vazba n - m je tvorena samostatnou spojovaci tabulkou. Ke zprave databaze pouzivam Hibernate a k sprave sessionu a trasakci vyuzivam nad nim Spring. Problemy jsou dva: 1) Pri nacteni seznamu kraju mi vrati hibernate 4 kraje, misto dvou. A to v nasledovnem slozeni nejdrive trikrat se nacte Kraj 1 a nasledne jednou kraj 2. (HashCode i Equals mam pretizeno, vsechny objekty Kraj 1 jsou jeden a tentyz, jenom je v tom vracenem Listu nekolikrat) Nemate nahodou na ten Kraj 1 navazane 3 Okresy? Jaky dotaz pouzivate pro nacitani Kraju? Setkal jsem se s timto chovanim v pripade ze jsem v HQL pouzil konstrukci ktera kraje a prislusne navazane okresy nacita jednim joinovanym SQL selectem (uz si presne nepamatuji jaka je to konstrukce). Hlasil jsem to do BTS Hibernate jako chybu ale pry je to feature. Resenim je si ten vysledny List presypat do LinkedHashSet ktera vyhodi duplicity ale pro iterator zachova poradi. 2) Da se do spojovaci tabulky pridat nektere dalsi informace? Napriklad datum zacatkuclenstvi, registracni cislo atp? Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
Re: TODO anotece + nastroj na jejich cteni
No prave ze ja pouzivam XEmacs + JDEE, prave proto jsem chtel najit nejakou univerzalnejsi metodu jak tyto TO-DO poznamky psat nezavisle na IDE. No v XEmacsu pouziji grep jak jsem prave dostal radu + muzu pouzit standardni TODO manager pro Emacs. No ale podle vseho kdyz se da tag @todo do dokumentace, tak maven defaultne umi vygenerovat html stranku se vsemy nedodelky. No a taky jsem dosal typ na tag ktery s pomoci xdoclet umi takovou stranku vygenerovat i pod antem. Takze nakonec pouziji asi grep pro @todo tag, take to budu mit rychle dostupne v mojem IDE a taky vygenerovatelne napriklad na stranky. Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant
Re: for vs. while
No tady je zjevny iteracni krok, navic je zjevne ze tim omezujete platnost promene rs jenom pro dany cyklus. Takze tady to muze mit vyznam jak prakticky tak popisny. Tak nejak bych ve for hledal definici iterujici promene a metodu, ktera provadi samotny iteracni krok, jak uz i++, tak rs.next(). Kdezto ve while pouze samotnou kontrolu podminky. Je to sice jenom moje chapani, ale tak nejak mi to prijde prirozene pro tyto dva cykly. Lukas benzin Benda Zdravim, a co si myslite o tomhle: PreparedStatement ps = ... for (ResultSet rs = ps.executeQuery(); rs.next(); ) { ... } Podle me je to lepsi nez ucebnicovy dvouradkovy while... a take v souladu s nazorem Joshuy Blocha v Effective Java... Roman Dneska jsem ve jednom frameworku narazil na tuhle konstrukci: for (; text != null;) { ... } Mne to prijde jako docela praseci konstrukce. Muze mit nejake opodstatneni pouzit takhle for misto toho aby se pouzil while? Lukas benzin Benda
TODO anotece + nastroj na jejich cteni
Neznte nekdo jiz vytvorenou nejakou anotici a nastroj ktere by tyto anotace cetl na TODO? Proste seznam ukolu k udelani? Zatim jsem nasel rozsirujici modul pro JavaDoc, ale preci jen si myslim, ze problem s neudelanymi ukoly saha za hranice pouhe dokumentace a anotace se mi na to jevi jako dobry zpusob. Lukas benzin Benda
Re: Testovani privatnich metod s jUnit 4
Uvazoval jsem nad timto tematem, a take nad tim, proc jsem tento problem nikdy nemusel resit. Je to asi zpusobeno tim, ze hojne vyuzivam refaktorizaci. Kdyz uz je nejaka privatni metoda tak slozita ze si vyzada vlastni testovani (ze nestaci pouhe testovani verejnych metod), pak ji vetsinou prisoudim vlastni tridu. Asi to neni vsespasne reseni, ale zatim, mne to od vsech testu privatnich metod uchranilo. Jinak reflection se mi nejevi az tak slozite. Lukas Benda Zdar, mam takovou spise filozofickou otazku. Zvazuju, ze bych chtel otestovat privatni metodu jedne tridy. Zvazuju ze bych to udelal s jUnit 4 s tim, ze ten unit test pripojim primo do dane tridy. Nelibi se mi ale to, ze 1, samotna trida bude v runtime zavisla na tridach jUnitu, coz je podle me, chyba navrhu. 2, testovaci metoda musi byt public, coz znamena ze exportuju tuto metodu nesmyslne a zatemnuju tim API Alternativy jsou: 1. pouzit Reflection a testovat privatni metodu pres reflection - zda se mi moc slozite 2. pouzit Groovy pro unit test - asi nejschudnejsi, ale neni to pure Java, musim do Mavenu pridavat goal na compilaci Groovy trid, potize s Eclipse, ... 3. pouzit TestNG, ale i tam je nakonec zbytecna zavislost tridy na testovacim frameworku. Jestli muze byt testovaci metoda v TestNG privatni, to nevim. Mate k tomu nekdo nejakou poznamku? Napad? Jak to delaji jinde? Tom
Re: Swing a data binding
Tak uvazuju jestli ten mail vubec do konference dosel. Ano to jde udelat napriklad na to je Spring-RCP, jedna se o platformu urcenou prave pro vytvareni tlustych (bohatych) klientu. Btw. to co za Vas dela Hibernate, nebo JDO delalo Delphi do znacne miry pomoci obektu Query resp. ClientDataSet. Prevadi databazova data na objekt. Presne to kdyz udelate tak balicek org.springframework.binding a jeho potomek org.springframework.binding.swing je presne na tohle urceny. S pozdravem Lukas Benda Rozumím, lze nějak rozumně udělat DBMS - datový objekt - Swing bez aplikačního serveru (tzn. na dvojvrstvé věci)? Protože JBuilder mě neláká a rád bych si nechal zadní vrátka pro rozšíření aplikace na třivrstvou někdy v budoucnu. Petr -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of URBAN Leos Sent: Friday, May 19, 2006 8:22 AM To: Java Subject: Re: Swing a data binding Zdravím, to, co existovalo v VisualBasicu (a Delphi) najdete v JBuilderu. Tam si připojíte datový zdroj definicí přes JDBC, na formulář naklikáte speciální swingové objekty dbSwing co mají vlastnosti dataSet a columnName, nahoru dáte toolbar s tlačítky first, next, edit,... (nebo si to obsloužíte sám) a je to. Viz http://pipin.tmd.ns.ac.yu/extra/java2/libs/dbswing/ref/dbswing/Package-com.b orland.dbswing.html JBuilder není zadarmo ale toto funguje i s tou jejich start verzí která je pro nekomerční použití zadarmo takže to můžete aspoň vyzkoušet. Uvedený postup je proprietární postup Borlandu takže pak jste navěky svázáni s JBuilderem. Já to jen kdysi zkoušel. Protože se zabývám EJB3 (tj. 3 vrstevnou architekturou) by mi toto nebylo k ničemu. Leoš Petr Zajíc napsal(a): Totiž, zatím se v tom docela solidně technologicky ztrácím. Vize je asi taková: Existuje nějaká historická dvojvrstvá aplikace s databází (MSSQL) a tlustým klientem (Visual Basic 6). Datábázi chce zákazník nechat tak jak je, ale klienta předělat do Javy (Swing). Ve starém špatném Basicu to bylo tak, že ovládací prvky na formuláři byly vázány přímo na zdroj dat - recordset (v Javě ResultSet). Ten JGoodies binding nicméně umožňuje pomocí swingu prezentovat data zase jen z objektu. Já musím udělat kolečko databáze - cosi - prezentace dat ve Swingu prezentace dat ve Swingu - cosi - databáze Takže já vlastně asi potřebuju nejenom binding, ale i perzistenci. Nakopne mě někdo správným směrem? Existuje nějaká kombinace technologií, která mi umožní a) použít současný návrh relační databáze b) solidně namapovat databázová relační data na objekty c) objekty prezentovat ve tlustém klientu (desktop-swing) Těch možností je víc a mě by zajímalo, kdo má s čím zkušenosti. Petr Zajíc -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Richard Malaschitz Sent: Friday, May 19, 2006 12:00 AM To: Java Subject: Re: Swing a data binding Mohli by ste napisat co ste si nakoniec vybrali a nejake mini-porovnanie ? 2006/5/16, Benda Lukas [EMAIL PROTECTED]: Samozrejme napr; Spring RCP http://spring-rich-c.sourceforge.net/ Zdravím, budu muset přepsat jeden ne-jevovský projekt do Javy a bude to tlustý klient využívající Swing. Ve spoustě případů budu potřebovat okna, jejichž komponenty budou zobrazovat a/nebo měnit data pocházející z relační databáze. Aplikace bude dvojvrstvá. Je mi jasné, že psát kód pro databinding je vynalézání kola. Máte někdo zkušenosti s nějakým frameworkem na tuhle záležitost? Mě se zatím nejvíc líbí JGoodies binding (https://binding.dev.java.net/), ale uvítám názory/postřehy s tímto nebo čímkoli jiným. Díky za názory Petr
Re: Poptavka po vyvojari jednoduche mobilni Java aplikace
Takze kouzelnika? Pokud vim, tak ani Nokia, ani Ericsson, ani zadny jiny mobil tohle nezvlada. Mozna bude lepsi spis nahodit na jake mobily to chcete dostat. Protoze i kdyz to je Java, na kazdem mobilu jina. Zdravim, hledam vyvojare Java, ktery dokaze spolupracovat s foto- a SMS funkcemi v mobilu. Zahajuji projekt, ktery ma velmi vysoky financni potencial a mohu nabidnout podil. Honza
Re: Aplikace sklad - vhodna databaze, framework?
Petr Kolesa napsal(a): Benda Lukas napsal(a): Takze pro desktopove aplikace bych mozna jeste zvazoval HSQL, ktera je cela programovana v Linuxu a nepriklad je nativni pro OpenOffice, prave ^^ Pravdepodobne myslite v Jave. Presne z duvodu ze Firebird nema embendet na Linuxu. Nezni ten cizi, petkrat se vyskytujici, termit nahodou 'embedded'? Ja vim, bylo uz pred pulnoci ... :) To neni puloci, ale skutecne tim, ze mam problemy s pravopisem jak anglickym, tak ceskym a obcas jsem lenivy kvuli kazdemu slovu brat slovnik. Btw. nedari se mi najit cesky ekvivalent toho slova. P.S.: Ani v mych chytrych slovnicich to slovo neni :(( kolisko
Re: Aplikace sklad - vhodna databaze, framework?
Ja napriklad. Rychlosti predhoni, i u neodborne konfigurace, MySQL a PostgrSQL. Je velmi kompaktni. Snadno se do ni doprogrmovavaji dalsi UDF, kdyz uz tedy dalsi potrebujete (to znemna, napriklad ruzne funkce volane na urvni databaze). Na windows se da pouzit i jako Embendet (to znamena neni treba instalovat server, ale primo pomoci knihovny pristupujete k databazi). Embedet je navic rychlejsi, nez server (vse probiha v ramci jedineho pametoveho prostoru). Embendet ma taky vetsi odolnost vuci napadeni, protoze bez serveru, neni utocnika :)) Nevyhoda je neexistence embendet verze pro Linux. Takze pro desktopove aplikace bych mozna jeste zvazoval HSQL, ktera je cela programovana v Linuxu a nepriklad je nativni pro OpenOffice, prave z duvodu ze Firebird nema embendet na Linuxu. Kazdopadne Firebird vrele doporucuji. S pozdravem Lukas Benda Skusal niekto FireBird ? DS -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Vladimir Vymetal Sent: Friday, May 05, 2006 9:49 AM To: Java Subject: Re: Aplikace sklad - vhodna databaze, framework? Co se tyka databaze, tak take doporucuji PostgreSQL. Transakce, referencni integrita a ostatní funkcnost je velmi vyspela. Co se tyka rychlosti, tak si dovolim tvrdit, ze vhodnou definicí indexu, se da priblizit rychlosti mysql. S pozdravem Vladimir Vymetal Burdik Petr wrote: Jestli chcete skladat moduly, doporucuji spring. Tam web nemusite resit pokud nechcete. Mysql je dobra databaze pro web, na pouziti v ucetnictvi bych sel ale urcite do postgresu kvuli delsi podpore transakcniho zpracovani. Mysql je super pro web, protoze je proste rychlejsi. Pet Petr Gola wrote: Zdravim, chtel bych v Jave napsat aplikaci pro obsluhu skladu - prijem, vydej, stav... no, databazova aplikace, pozdeji k tomu pridavat dalsi moduly (napr. pokladnu, tisk uctenek). Ale resim ted nekolik problemu, ktere je potreba rozhodnout jeste pred kodovanim. Rad bych pouzil moderni postupy, ale nechci kanon na vrabce. Spise hledam neco, co by vylepsilo produktivitu a nezavrelo mi to vratka k dalsimu rozsirovani. Ted resim: 1) jakou databazi pouzit - aplikace by v nejlehci verzi mela bezet na jednom pocitaci (mozny win i linux). Puvodne jsem pomyslel na PostgreSQL, ale vadi mi zpusob behu na windows platforme - mate s tim nekdo zkusenosti? A co si myslite o MySQL (nazvem mi neni prilis symaticka:)? 2) chtel jsem pouzit nejaky framewok, ale vse mi prijde orientovane spise na web. Ja ted potrebuji napsat desktop aplikaci, ale mozna, ze pozdeji bych chtel pridat webovy, pripadne i mobilni pristup. Bohuzel vsechny tutorialy jsou take zamereny na webove aplikace. Urcite by se tim dalo prokousat, ale nemam ted bohuzel takove casove moznosti a potreboval bych nejake nakopnuti. Nevite nekdo o necem na webu? Nezkousel jste nekdo Spring-RCP (Rich Client Project)? Hledam tedy nejlepe nejakou sadu nastroju - databaze, perzistence dat, autorizace, namapovani dat do formulare (GUI)... S pozdravem, Petr Gola
Re: Aplikace sklad - vhodna databaze, framework?
Prave pisu tutorialek na Spring-RCP, je sice pravda ze je to dosti mlady projekt, ale myslim ze s velkym potencialem. Kazdopadne pro uzivatelske rozhrani se nuvazete k jedinemu IDE, jako treba v pripade NetBeans RCP, nebo Eclipse RCP. S pozdravem Lukas Benda P.S.: Pro perzistenci vrele doporucuji Hibernate. Musim rict ze i Annotace jsou tam jiz solidne propracovane a zatim jsem nenarazil na problem, ktery bych nevyresil. Petr Gola napsal(a): 1) jakou databazi pouzit - aplikace by v nejlehci verzi mela bezet na jednom pocitaci (mozny win i linux). Puvodne jsem pomyslel na PostgreSQL, ale vadi mi zpusob behu na windows platforme - mate s tim nekdo zkusenosti? A co si myslite o MySQL (nazvem mi neni prilis symaticka:)? Z databazi bych uvazoval i o Firebird (www.firebirdsql.org) - puvodne Interbase. U nas ve firme na ni jede pres 60 klientu a bezi na ni cely informacni system (vsechny oblasti vyrobni firmy) a jsme velice spokojeni. Ted resime neco podobneho jako vy - vybirame vhodny jazyk a prostredky na prepsani klientske casti vyse zmineneho systemu, ktery je nyni napsan v Kylixu. Jako jazyk jsme vybrali Javu. Vazne uvazujeme, ze to postavime nad Netbeans Platform, ale cekame na uvedeni Netbeans 6.0 (v Q4), kde ma byt databinding (ve spojeni s navrharem Matisse by to mohl byt pekny a pohodlny vyvoj aplikace). Jako tisky zatim uvazujeme o JasperReports. Karel
Re: OT: Testovani aplikaci (JUnit, DBUnit ...)
Asi nejmensi zlo je prechazet na nove metodoky pomalu. Pokud skocite do XP rovyma nohama, nevim jak dopadnete u kolegu. Je to spousta novych technik, ktere je nutno se naucit, jinak to nebude fungovat. Ja zacal od TDD (testy rizeny vyvoj) s trochou refaktorizaci. Myslim, ze casem az se mi to vice zautomatizuje budu psat vice testu i vice refaktorovat. Testy alespon pri vyvoji MVC koponent s web rozrhranim vyvoj radikalne zrychli. Nemusite totiz porad restartovat Tomcate (nebo ktery jiny server mate), resp. testovanou aplikaci. Protoze testy probihaji (s trochou dobreho navrhu) primo jenom v JUnit. K testovani puzivam hojne Mock Objekty a Test Scenario jak je popsan zde http://www.sweb.cz/pichlik/archive/2005_10_23_archive.html. Sam jsem ale mel strasny problem pochopit jak vlastne testovat trochu slozitejsi problem, napojeny treba na DB. Osvedcil se mi model (kdyz teda delam aplikaci primo s JDBC, ne treba Hibernate, tam by byla metodika jina) DAOReader (rozhrani) pro DAOReaderImpl a DAOReaderMock - Rozhrani implementuji dve tridy, ktera jedna je navazana na databazi a druha slouzi jako Mock objekt, pro predavani dat po cas testu. Testuji pak aplikacni logiku pres DAOReaderMock a kdyz mam aplikacni logiku otestovanou otestuji jeste DAOReaderImpl jestli vrati skutecne z DB to co si preji. Obdobne DAOWriter pro zapis dat do DB. Jak rikam vyvijim rychleji a to jiz z kratkodobeho hlediska, protoze nemusim cekat na start interface, abych naklikal, nebo jinak otestoval co chci. S pozdravem Lukas Benda P.S.: Pri testovani GUI se uz asi klikaci a testovaci metode nevyhnu (teda pokud se neucim Cactus - coz asi udelam). Zdravim, chtel bych se zeptat hlavne lidi, co se drzi nejake agilni metodiky vyvoje software. Mam v umyslu presvedcit sve kolegy o prechodu na nekterou z techto metodik vcetne contin. integr. a s jedinou veci si lamu hlavu. Psani testu. Chtel bych vedet jestli vyvojove tymy ktere nejprve napisou testy a pak az koduji maji pocit, ze psanim testu narostl cas straveny vyvojem. Je mi jasne, ze tenhle cas navic (jestli je nejaky) se vrati pri pozdejsim vyvoji a integrovani dalsich komponent (nemluve o tom, ze si clovek aspon uvedomi co chce napsat), ale co jsem zjistil kdyz navrhnu psani testu atd. tak nejcastejsi poznamka je navyseni casu pro vyvoj. A bohuzel na to management slysi. Taky klidne muzete pridat svoje zkusenosti s agilnimi metodikami :) (nejlepe v Jave, abych naplnil zamereni teto konference ;)) Preji hezky den Daniel Holesinsky (DH)
Re: J2ME - Prace s infrered na mobilu
Kdyz si stahnete WTK primo do sunu tak na to tam jsou na to example aplikace. Ve stredni tride mobilnich telefonu bluetooth a IDR zvladne ovladat zatim jenom Nokia 6230i. Erricsony myslim, zatim bluetooth vubec do Javy nezaradily. JJ je to bida, problem je se ty standarty dozvedet. Jedina moznost je prihlasit se do developlment komunity daneho vyrobce a doufat, ze u modelu uvadi standarty ktere to podporuje myslim, ze se to jmenuje JRE cislo. Takze si najdete na netu jake oznaceni ma standart pro Bluetooth a mrknete se na development strankach vyrobce jestli to Vas model podporuje. S pozdravem Lukas Benda Zdravim, nevite prosim nekdo, jakym zpusobem ovladat IR port na mobilu? Mam Nokia, Ericsson. Nejsem v J2ME vubec zbehly, chtel bych si s tim zkusit pohrat a udelat si dalkac na fotak, abych usetril petistovku :-) Na webu jsem nasel spise zminky, ze to neni vyzadovano standardem a ze vyrobci telefonu to bud zpristupnuji ve svych vlastnich knihovnach Jave a nebo taky ne (= nutnost pouzivani podkladoveho OS, pokud je, nebo smula). Diky za napady nebo dobre odkazy, Radek
Re: OT: PMD Error while parsing
Takze Vy pouzivate PMD + MetaCeck? A ty Vase fixy jsou dostupne kde? S PMD uz jakz, takz umim a mam nastaveny seznam pravidel. P.S.: Chtel bych kontrolovat minimalni delku parametru (to pravidlo tam je), bohuzel nektere parametry ac kratke jsou dostatecne jednoznacne. Napr. id je jasny identifikator. Jak pasivovat PMD proti podobym prohreskum, pri zachovani kontroly? On Wednesday 08 of March 2006 21:29, Benda Lukas wrote: Tak jsem pochopil preklad slova obsolte=zastaraly, zakrnely, nemoderni Vzhledem k tomu, ze je PDM neustale vyvijen (a jak jsem se docetl v jinem dnesnim postu i integrovan do NB5.0), tak obsolete asi nebude. Na zaklade mych fixu uz navic konecne umi korektne rozpoznavat neascii zdrojaky, takze... Takze jsou to dva ruzne nastroje jako checkstyle a metacheck? A nejake srovnani? To nejsou dva konkurentni nastroje. MetaCheck uz od sveho nazvu Meta integruje vystupy z asi deseti source code checkeru (checktyle, JavaNSS, Hammurapi, PDM, JCS,...) do jednoho rozumne vypadajiciho HTMLcka. URL je samozrejme http://metacheck.sourceforge.net/ On Wednesday 08 of March 2006 07:45, Jozef Babjak wrote: Z PMD skusenosti mam a nasiel som aj uspokojive riesenie na problemy s nim: http://checkstyle.sf.net Napriek tomu, ze aj toto riesenie ma svoje muchy, robi z PMD jednoznacne obsolete tool. Az tak uplne obsolete neni. Kazdopadne doporucuji MetaCheck - nastroj, ktery integruje spoustu podobnych nastroju.
Re: OT: PMD Error while parsing
Tak jsem pochopil preklad slova obsolte=zastaraly, zakrnely, nemoderni Takze jsou to dva ruzne nastroje jako checkstyle a metacheck? A nejake srovnani? On Wednesday 08 of March 2006 07:45, Jozef Babjak wrote: Z PMD skusenosti mam a nasiel som aj uspokojive riesenie na problemy s nim: http://checkstyle.sf.net Napriek tomu, ze aj toto riesenie ma svoje muchy, robi z PMD jednoznacne obsolete tool. Az tak uplne obsolete neni. Kazdopadne doporucuji MetaCheck - nastroj, ktery integruje spoustu podobnych nastroju.
OT: PMD Error while parsing
Nemate nekdo hlubsi zkusenosti s PMD? Kdyz ho spustim nad svojima zdrojakama, nektere to uspesne skontroluje, ale nad nekterymi vyhodi hlasku typu: cz\apnetis\servlet\Login.java Error while parsing apnetis\servlet\Login.java Programuju v Java 5. Dokonce to zhavaruje na parsovani jednoduchych vyctovych typu. Co s tim?
Re: Numericke operace na typem Double
Jo je to MsSQL, takze uz s tim pracuju pomoci BigDecimal, resp. sem si vytvoril objek Monay, ktery s tim pracuje pomoci Longu s presnosti na halere. Benda Lukas napsal(a): Bohuzel ve chvili kdyz musite pracovat s DB jineho programu ktery ma castky ukladany jako float(8), tak na vyber nemate :(( Jaka je to databaze? Nejaka proprietarni, pro kterou neni JDBC driver? Protoze pokud pro ni je JDBC driver, tak muzete zcela jiste pouzit BigDecimal. Tom
Numericke operace na typem Double
Nemate tuseni proc se v JAVA napriklad 39.9 / 10 = 3.9898? Potrebuji cislo zaokrouhlit napr. na dve desetina mista. Puziji jednocuchy vzorec Math.round(cislo * 100) / 100 bohuzel konkretne u cisla zmineneho vise to nejak nevychazi. Nevite co s tim? S pozdravem Lukas Benda
Re: Numericke operace na typem Double
At se to zda absurdi kupodivu v naprosto bezne praci potrebuju presnost. Kdyz mam delat testy musim mit jistotu ze 39.9 / 10 = 39.9 *0.1 = 39.9/100. Kdyz mi kazda tato operace vrati jiny vysledek pak je neco sakra spatne. Takze typ double pro mne vlastne efektvine skocil. Dekuji za ten typ na BigDecimal. Nemate tuseni proc se v JAVA napriklad 39.9 / 10 = 3.9898? Potrebuji cislo zaokrouhlit napr. na dve desetina mista. Puziji jednocuchy vzorec Math.round(cislo * 100) / 100 bohuzel konkretne u cisla zmineneho vise to nejak nevychazi. Nevite co s tim? Záleží na tom, k jakému účelu potřebuješ číslo zaokrouhlit. Je-li to jenom proto, aby se hezky vytisklo, je výhodnější se o zaokrouhlování nestarat a přenechat starost o vzhled čísla formátovacímu objektu. Použiješ-li místo System.out.println( 39.9 + / + 10 + = + 39.9/10 ); formátovaný výstup System.out.printf( %.1f / %d = %.2f, 39.9, 10, 39.9/10 ); budeš mít po starostech - vytiskne se 39.9 / 10 = 3.99 Metoda printf ale funguje až od Javy 5.0 - u starších verzí musíš použít trošku komplikovanější metody formátování. Potřebuješ_li z nějakého důvodu s takto zaokrouhlaným číslem opravdu počítat, musíš si ujasnit, jestli ti opravdu ta chyba někde na 14. desetinném místě vadí - pak použij např. BigDecimal, nebo jestli tě to jenom obtěžuje při debugování - pak se na to vykašli.
Re: Numericke operace na typem Double
Stojim za tim, ze se chyba na trinactem miste v 99% pripadu ignorovat neda. Napr. pri formatovani pomoci sprintf jak je uvedeno vyse. Konkretne cislo 39.9 / 10 se podle JAVA rovna 3.988 takze ve vyslednem formatovani se zobrazi 3.99 (teda pokdu zaokrouhluje, to jsem nezkousel jinak by to vyslo 3.98) Kdyz ale provedete 39.9 * 0.1 tak podle JAVA dostanete 4.007 takze ve vyslednem formatovani ziskate 4.00 Hle ona chyba se z trinacte pozice prenesla hned na treti. Je vysoka pravdepodobnost ze se vyskytnou pripady kdy se takova chyba prenese dokonce na pozici druhou. Ale i v tomhle pripade se dostavate na presnoust vypoctu kolem 1% coz je dost tristni. Btw. nevim ktere jazyky pocitate za vetsinu. Delphi a C# temito neduhy netrpi. Mno, takhle se chová většina programovacích jazyků. Protože zpracování čísel je přesné či nepřesné podle toho, zda zvolíte čísla s pevnou či pohyblivou čárkou. Totéž platí pro databáze; typy MONEY či CURRENCY jsou na tom jinak než FLOAT, SINGLE nebo DOUBLE (v různých DB se jmenují různě, princip však souhlasí). IMHO asi nebudete v praxi potřebovat dělit, zpětně násobit a porovnávat. Jinak, porovnávat dvě float čísla se Vám dříve či později vymstí v jakémkoli výpočtu při práci na jakémkoli programu. Ta nepřesná čísla jsou tam právě proto, že chyba na třináctém místě za desetinnou čárkou se většinou ignorovat DÁ. Petr Zajíc -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Benda Lukas Sent: Thursday, February 23, 2006 10:14 PM To: Java Subject: Re: Numericke operace na typem Double At se to zda absurdi kupodivu v naprosto bezne praci potrebuju presnost. Kdyz mam delat testy musim mit jistotu ze 39.9 / 10 = 39.9 *0.1 = 39.9/100. Kdyz mi kazda tato operace vrati jiny vysledek pak je neco sakra spatne. Takze typ double pro mne vlastne efektvine skocil.
Re: Numericke operace na typem Double
Vsechny ulohy kde je treba pocitat s penezi na dve desetine mista (takze kdyz vlastne kazde ucetnictvi) potrebuje, jak jsem psal v predchozim prispevku 39.9 / 10 a 39.9 * 0.1 pri formatovani vystupu %.2f da jednou vysledek 3.99 a podruhe 4 a hned mate halerove manko. Tady se rekne halir, tezko rict jestli nenajdeme kombinaci cisel kdy to da deset haleru. Pak uz zacnou problem a velke problemy. At se to zda absurdi kupodivu v naprosto bezne praci potrebuju presnost. Kdyz mam delat testy musim mit jistotu ze 39.9 / 10 = 39.9 *0.1 = 39.9/100. Kdyz mi kazda tato operace vrati jiny vysledek pak je neco sakra spatne. Takze typ double pro mne vlastne efektvine skocil. Sakra špatně je program, který testuje dva double na rovnost. Všechny slušné kurzy programování jasné varují, že přímé porovnání dvou hodnot double je zakázaná operace. Lze-li předem odhadnout řádovou velikost provonávaných hodnot, musí se dvě hodnoty d1 a d2 typu double porovnávat buď abs(d2 - d1) eps kde eps je nějaké předem zvolené číslo, které je výrazně menžší než požadovaná přensot (už to tu někdo psal). Není-li možno předem odhadnout řádovou velikost (tj. jestli to budou tisíce nebo tisíciny), je to obtížnější - pak se musí porovnávat např. abs(1 - d1/d2) eps Při běžné práci opravdu není potřeba větší přesnost, než oněch doublem zaručených 15 cifer. S takovou přesností se totiž v běžné praxi nic neměří, takže není důvod na ní trvat. Taková zaručená přesnost je většinou potřeba pouze ve finančních výpočtech, kde potřebujete počítat miliardami a bilióny s přesností na halíře. Druhou oblastí jsou pak naumerická řešení všelijakých rozsáhlých rovnic popisujících tuhé systémy, protože tam je občas potřeba odečíst dvě skoro stejná čísla a nemám-li dostatečný počet platných cifer, jsem v ... Opravdu existují úlohy, kde je třeba místo double používat např. BigDecimal, ale není jich tak moc. I při výpočtech s pomocí BigDecimal vznikají zaokrouhlovací chyby a hlavně jsou tyto výpočty mnohem, ale opravdu mnohem pomalejší. Ne vždy jsme přitom za ono částečné zvýšení přesnosti ochotni touto pomalostí platit.
Re: Numericke operace na typem Double
Bohuzel ve chvili kdyz musite pracovat s DB jineho programu ktery ma castky ukladany jako float(8), tak na vyber nemate :(( Dobry den, C# je na tom s delenim desetinych cisel jako java, c++ a nejspis vsechny ostatni jazyky tedy tez nedava presny vysledek pokud nepouzijete specialni objekt pro presne pocitani. Chran nas panbuh od programu ktere pocitaji ze 1 je koruna a ne haler. S pozdravem Pavel Savara Viz google predpokladam ze to tak je nejsem c# expert: Does C# have the same problem as C++ with code like this? if (GetDouble1() == GetDouble2()) { } In C++, due to the IEEE storage format, it is possible to have 2 doubles that are essentially the same value but not quite, so the above code will not do what you expect. Boost has some extensions to STL to solve this problem. Does C# have similar problems? If so, what is the right C# way of handling this issue? Yes, floating-point (not just double precision) numbers/arithmethic has this problem in virtually every language because of the representation that you have noted. One way of handling this is to calculate the precision of the machine that your code is running on and then do a comparison to see if the difference is less than or equal to the precision of the machine. If it is, then the values are identical as far as you can tell. Note that C# has the Decimal type that can help is many situations. Regards, Randy On 2/23/06, Benda Lukas [EMAIL PROTECTED] wrote: Vsechny ulohy kde je treba pocitat s penezi na dve desetine mista (takze kdyz vlastne kazde ucetnictvi) potrebuje, jak jsem psal v predchozim prispevku 39.9 / 10 a 39.9 * 0.1 pri formatovani vystupu %.2f da jednou vysledek 3.99 a podruhe 4 a hned mate halerove manko. Tady se rekne halir, tezko rict jestli nenajdeme kombinaci cisel kdy to da deset haleru. Pak uz zacnou problem a velke problemy. At se to zda absurdi kupodivu v naprosto bezne praci potrebuju presnost. Kdyz mam delat testy musim mit jistotu ze 39.9 / 10 = 39.9 *0.1 = 39.9/100. Kdyz mi kazda tato operace vrati jiny vysledek pak je neco sakra spatne. Takze typ double pro mne vlastne efektvine skocil. Sakra špatně je program, který testuje dva double na rovnost. Všechny slušné kurzy programování jasné varují, že přímé porovnání dvou hodnot double je zakázaná operace. Lze-li předem odhadnout řádovou velikost provonávaných hodnot, musí se dvě hodnoty d1 a d2 typu double porovnávat buď abs(d2 - d1) eps kde eps je nějaké předem zvolené číslo, které je výrazně menžší než požadovaná přensot (už to tu někdo psal). Není-li možno předem odhadnout řádovou velikost (tj. jestli to budou tisíce nebo tisíciny), je to obtížnější - pak se musí porovnávat např. abs(1 - d1/d2) eps Při běžné práci opravdu není potřeba větší přesnost, než oněch doublem zaručených 15 cifer. S takovou přesností se totiž v běžné praxi nic neměří, takže není důvod na ní trvat. Taková zaručená přesnost je většinou potřeba pouze ve finančních výpočtech, kde potřebujete počítat miliardami a bilióny s přesností na halíře. Druhou oblastí jsou pak naumerická řešení všelijakých rozsáhlých rovnic popisujících tuhé systémy, protože tam je občas potřeba odečíst dvě skoro stejná čísla a nemám-li dostatečný počet platných cifer, jsem v ... Opravdu existují úlohy, kde je třeba místo double používat např. BigDecimal, ale není jich tak moc. I při výpočtech s pomocí BigDecimal vznikají zaokrouhlovací chyby a hlavně jsou tyto výpočty mnohem, ale opravdu mnohem pomalejší. Ne vždy jsme přitom za ono částečné zvýšení přesnosti ochotni touto pomalostí platit.
Hibernate, subclass, single table per classe hierarchy
Snazim se vytvorit hierarchii objektu kde v jedne tabulce jsou data pro vice objektu a objekty se lisi discriminatorem. Pr.: @Entity @Table(name=user_skupinaKlic) @Inheritance(strategy=InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name=type, discriminatorType=DiscriminatorType.STRING) @DiscriminatorValue() public class SkupinaKlicImpl implements SkupinaKlic, Serializable { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Long id; @ManyToOne(targetEntity=UserImpl.class) @PrimaryKeyJoinColumn private User user; @Column private Integer value; Set, get metody a metoda equals (pouziva instanceOf) a hash } Z ni dedi dve tridy @Entity(name=Skupina) @DiscriminatorValue(0) public class SkupinaSkupinaKlic extends SkupinaKlicImpl {} a @Entity(name=Klic) @DiscriminatorValue(1) public class KlicSkupinaKlic extends SkupinaKlicImpl {} 1) Pri tomto mapovani se vyskytlo hned nekolik potizi. Prvni je v pripade, kdyz DiscriminatorColumn nastavym na typ INTEGER, prohlasi hibernate ze neprevede hodnotu. Zmenil jsem tedy sloupecek v db na varchar a nastavil kolonku jako STRING. Kazdopadne bych ale radsi mel discriminator typu integer. 2) Pri pokusu o nacteni nektere z podtrid skonci hibernate s vyjimkou: org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: Object with id: 4 was not of the specified subclass: cz.apnetis.pohoda.settings.SkupinaSkupinaKlic (loaded object was of wrong class); nested exception is org.hibernate.WrongClassException: Object with id: 4 was not of the specified subclass: cz.apnetis.pohoda.settings.SkupinaSkupinaKlic (loaded object was of wrong class) org.hibernate.WrongClassException: Object with id: 4 was not of the specified subclass: cz.apnetis.pohoda.settings.SkupinaSkupinaKlic (loaded object was of wrong class) at org.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.java:1235) Zaznam s id 4 je prvnim zaznamem v tabulce a schodou okolnosti ma type nastavene na 0, tudiz by mel byt typu SkupinaSkupinaKlic (ale je to celkem jedno i kdyz ho zmenim na 1, tak na nem hibernate skonci). Zkousel jsem z equals vyhodit instanceOf a nepomohlo to Objekty jsou nacitany jako lazy=false Uz mam touhle chybou zkazenou celou sobotu a porad jsem se nehnul z mista.
JSTL core:out default
JSTL core tag core umonzuje nastavit defaultni hodnotu, ktera je vypsana v pripade, ze je hodnota value rovna null. navic taky umoznuje hodotu vypisovanou escapovat citlive HTML znaky nepr. , , atp. Otazka nastava jak vypsat napr. tvrdou mezeru (nbsp;) nebo FOTN color=redHodnota neni zadana/FONT a pritom u dat z databaze zachovat escapovani citlivych zanku. Takze jak default neescapovat, ale v ostatnich pripadech escapovat? (pokud to nejak nastavit nejde tak se mi to default jevi pomerne dost bezzube)JSTL core:out default