Re: Hibernate discriminator v OUTER JOIN
To tam kedysi bolo. Potom sme mali problém s výkonnosťou, tak som to meral a v našom konkrétnom prípade bolo ...NOT IN()... voči ...RIGHT OUTER JOIN ...WHERE outer id IS NULL vyše 500 x pomalšie (trvalo to asi 37 sekúnd, čo bolo na tých pár testovacích záznamov hodne zlé). Ale pre istotu som to skúsil aj teraz a tá rýchlosť je nižšia len asi o 50 % pre NOT EXIST aj pre NOT IN. Nerozumiem. v RECORD je vyše 200 000 záznamov a v LOG je vyše 1 600 000. A tie časy sú 7 sekúnd voči 5 sekúnd. Oboje plne vyhovujú. Je pravda, že odvtedy sa robili mnohé zmeny a hlavne pribudlo hodne indexov.. Díky moc, Rastislav Bedo Siekel P.S. Ale keď som už začal, ešte vyskúšam riešenie podľa Romana, keby som nabudúce predsa len potreboval doplniť niečo do ON klauzuly. Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk mailto:sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 Lukas Barton wrote: Proc proste nenapisete: select Record1 from Record1 where not exists(select Log.id from Log where Log.id = Record1.id and Log.type = TL) Nemusite nic znasilnovat a je to i srozumitelnejsi. On 9/16/09, Rastislav Siekel sie...@prosoft.sk wrote: Ahojte, nevedel by niekto poradiť ako dostanem v Hibernate podmienku do klauzuly ON pre outer join? Mám tabuľky záznamov - napr. RECORD1, RECORD2, ... a jednu tabuľku logov - napr. LOG , kde si poznačím, ktoré záznamy a akého typu už boli spracované. Na úvod hľadám záznamy, ktoré ešte neboli vôbec spracované a preto v tabuľke LOG nie sú. Typ záznamu hľadám napr. 'TL' a tie sú v tabuľke RECORD1. Potrebujem vygenerovať asi takýto SELECT: *select RECORD1.* from LOG right outer join RECORD1 on (**LOG.TYPE= 'TL' and **RECORD1.ID=**LOG.ID**) where LOG.ID is null * Hibernate som najprv znásilnil cez formula, aby mi to generoval, asi takto: *class name=log table=LOG id name=... / property name=record1_Id column=RECORD1_ID type=... / many-to-one name=record1 column=RECORD1_ID class=... / formulaLOG_TYPE='TL' and RECORD1_ID/formula /many-to-one ... /class *Toto fungovalo a všetko bolo v poriadku. Potom však prišla požiadavka čítať záznamy z LOG-u a pre takéto mapovanie sa tá formula ocitla v SELECT liste, čo samozrejme spôsobilo neplatné SQL. Pokúšal som sa uvedené mapovanie zmeniť pomocou DISCRIMINATOR-a a nového potomka triedy LOG (napr. logExt) nejako takto: *class name=log table=LOG id name=... / discriminator column=LOG_TYPE type=string length=2 / property name=record1_Id column=RECORD1_ID type=... / subclass name=logExt discriminator-value=TL **many-to-one name=record1 column=RECORD1_ID class=... / **/subclass ... /class * Čo však vygenerovalo takýto SQL: *select RECORD.ID, ... from LOG right outer join RECORD on LOG.ID=RECORD.ID where LOG.ID is null ** and **LOG.TYPE= 'TL' *Čiže podmienka *LOG.TYPE= 'TL'* sa ocitla vo WHERE a nie v ON klauzule, čo má samozrejme fatálny vplyv na výsledok, pretože ak LOG je null, tak podmienka na LOG.TYPE je vždy FALSE a vráti sa prázdna množina. Priateľ google napovedal, že Gavin 26.8.2003 tvrdil, že mapovanie *discriminator* s atribútom *force=true* prinesie tento diskriminator do ON klauzuly - viď https://forum.hibernate.org/viewtopic.php?f=1t=934203view=next ale mne sa to takto nechová. Teraz mi ostali asi 2 možnosti riešenia, ale ani jedna sa mi nepozdáva. 1. Vytvoriť dve mapovania (trebárs ako predok a potomok), kde do potomka dám uvedené hack-y typu formula a keď budem chcieť čítať záznamy z LOG-u, budem čítať predka. 2. Použiť v HQL klauzulu WITH, ktorá dáva podmienku do ON klauzuly, ale musel by som zmeniť smer mapovania - RECORD by mal namapovaný LOG, čo je logicky zle, lebo entita RECORD nemá nič vedieť o tom, že si ju niekto loguje. Neviete niekto ešte inú možnosť? Rastislav Bedo Siekel P.S. Hibernate 3.2.1.ga voči Oracle 10.
Re: Hibernate discriminator v OUTER JOIN
Roman, díky za príspevok, ale v tomto prípade filter použiť nejde. Ako ste správne poznamenali, filter sa dá použiť na celý Class alebo Collections, lenže ja mám many-to-one väzbu. A nemôžem mať množinu RECORD-ov v entite LOG, pretože hľadám práve také, ktoré ešte nemajú záznam v LOG. Aj tak díky moc, Rastislav Bedo Siekel Roman Zakutny wrote: Zdravim, odhliadnuc od toho, ci Vase riesenie nie je zbytocne komplikovane, kedze nepoznam pozadie celeho problemu, sam som sa pred par mesiacmi taktiez stretol s absenciou moznosti pridat na ktorykolvek JOIN v dotaze vlastnu ON podmienku v Criteria API. O moznosti with som vedel, avsak HQL som sa pokial mozno chcel naozaj vyhnut. Na moje prekvapenie ta podpora tam bohuzial nebola (ak ak bola alebo uz je, budem velmi rad, ze ma niekto z tohoto omylu vyvedie:) Hibernate vsak ponuka riesenie a ja som ho vyuzil. Uz si detaily nepamatam, takze neviem presne povedat, aky to ma dopad na vykon. Nepouzival som ziadne FORMULA ani DISCRIMINATOR features, ale jednoduchy FILTER COLLECTIONS. Ide o to, ze ak chcete obmedzit nejaku podmnozinu dat, tak vo vysledku sa tato podmnozina typicky prejavi ako nejaka Collection v entite (vo Vasom pripade by to bolo Records v Log entite). Samotny dotaz je bez podmienok a vzhladom na to, ze vysledna Collection bude typicky LAZY natiahnuta, tak nasledujuce filtrovanie sa prevadza este v pamati bez pristupu do databazy, co oni oznacuju za velmi efektivny sposob. Ked potom pristupujete na jednotlive prvky kolekcie, tie uz splnaju Vami zadane kriteria. Takze taky workaround na ON podmienku... Doporucujem si pozriet velmi jednoduchy priklad: http://www.javalobby.org/java/forums/t43955.html Na moj problem som si s tym bez problemov vystacil a nemusel som pouzit HQL. Chapem, ze pre komplikovane podmienky napriec roznymi entitami v dotaze toto pouzitie nemusi byt jednoduche, ba dokonca nemozne... S pozdravom Roman. On Wed, 16 Sep 2009 22:44:30 +0200, Lukas Barton lu...@cnawr.cz wrote: Proc proste nenapisete: select Record1 from Record1 where not exists(select Log.id from Log where Log.id = Record1.id and Log.type = TL) Nemusite nic znasilnovat a je to i srozumitelnejsi. On 9/16/09, Rastislav Siekel sie...@prosoft.sk wrote: Ahojte, nevedel by niekto poradiť ako dostanem v Hibernate podmienku do klauzuly ON pre outer join? Mám tabuľky záznamov - napr. RECORD1, RECORD2, ... a jednu tabuľku logov - napr. LOG , kde si poznačím, ktoré záznamy a akého typu už boli spracované. Na úvod hľadám záznamy, ktoré ešte neboli vôbec spracované a preto v tabuľke LOG nie sú. Typ záznamu hľadám napr. 'TL' a tie sú v tabuľke RECORD1. Potrebujem vygenerovať asi takýto SELECT: *select RECORD1.* from LOG right outer join RECORD1 on (**LOG.TYPE= 'TL' and **RECORD1.ID=**LOG.ID**) where LOG.ID is null * Hibernate som najprv znásilnil cez formula, aby mi to generoval, asi takto: *class name=log table=LOG id name=... / property name=record1_Id column=RECORD1_ID type=... / many-to-one name=record1 column=RECORD1_ID class=... / formulaLOG_TYPE='TL' and RECORD1_ID/formula /many-to-one ... /class *Toto fungovalo a všetko bolo v poriadku. Potom však prišla požiadavka čítať záznamy z LOG-u a pre takéto mapovanie sa tá formula ocitla v SELECT liste, čo samozrejme spôsobilo neplatné SQL. Pokúšal som sa uvedené mapovanie zmeniť pomocou DISCRIMINATOR-a a nového potomka triedy LOG (napr. logExt) nejako takto: *class name=log table=LOG id name=... / discriminator column=LOG_TYPE type=string length=2 / property name=record1_Id column=RECORD1_ID type=... / subclass name=logExt discriminator-value=TL **many-to-one name=record1 column=RECORD1_ID class=... / **/subclass ... /class * Čo však vygenerovalo takýto SQL: *select RECORD.ID, ... from LOG right outer join RECORD on LOG.ID=RECORD.ID where LOG.ID is null ** and **LOG.TYPE= 'TL' *Čiže podmienka *LOG.TYPE= 'TL'* sa ocitla vo WHERE a nie v ON klauzule, čo má samozrejme fatálny vplyv na výsledok, pretože ak LOG je null, tak podmienka na LOG.TYPE je vždy FALSE a vráti sa prázdna množina. Priateľ google napovedal, že Gavin 26.8.2003 tvrdil, že mapovanie *discriminator* s atribútom *force=true* prinesie tento diskriminator do ON klauzuly - viď https://forum.hibernate.org/viewtopic.php?f=1t=934203view=next ale mne sa to takto nechová. Teraz mi ostali asi 2 možnosti riešenia, ale ani jedna sa mi nepozdáva. 1. Vytvoriť dve mapovania (trebárs ako predok a potomok), kde do potomka dám uvedené hack-y typu formula a keď budem chcieť čítať záznamy z LOG-u, budem čítať predka. 2. Použiť v HQL klauzulu WITH, ktorá dáva podmienku do ON klauzuly, ale musel by som zmeniť smer mapovania - RECORD by mal namapovaný LOG, čo je logicky zle, lebo entita RECORD nemá nič vedieť o tom, že si ju niekto loguje. Neviete niekto ešte inú
Re: problem s prechodem na netbeans 6.7
Dobry den, tak je to jeste horsi. Zazalohoval jsem si adresar s netbeans. Zalozil jsem webovy projekt pres maven. Spustil ho jak je a vse jede. Pri druhem pokusu o spusteni se objevuje znovu ta sama hlaska. Doporucujete tedy downgrade na JDK 1.5? S pozdravem Pet Dne Tue, 15 Sep 2009 11:23:02 +0200 Radovana Straube radovana_stra...@yahoo.com napsal/-a: Dobry den, mozno je to trochu od veci, ale s netbeans 6.7 mi projekt, ktory obsahuje WebService a ma nastavene JDK 1.5, kompiluje veci suvisiace s WebServisom s JDK 1.6. Ostatne classy su skompilovane v 1.5. S pozdravom Radovana Straube --- On Mon, 9/14/09, Petr Burdik p...@petujek.net wrote: From: Petr Burdik p...@petujek.net Subject: problem s prechodem na netbeans 6.7 To: Java konference@java.cz Date: Monday, September 14, 2009, 9:28 PM Ahoj, mam problem pri prechodu na netbeans 6.7 z 6.0. Kdyz jsem presel a nechal jsem zmenit stare netbeans nainstalovane, projekty zmenili format. Problem nastal v tom, ze zacalo prostredi hlasit pri deploy [ERROR]FATAL ERROR Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor Debugging information message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor class : org.apache.maven.plugin.war.util.WebappStructure required-type : org.apache.maven.plugin.war.util.WebappStructure path : /webapp-structure line number : 1 --- Trace com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor Debugging information message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor class : org.apache.maven.plugin.war.util.WebappStructure required-type : org.apache.maven.plugin.war.util.WebappStructure path : /webapp-structure line number : 1 --- at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46) at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117) at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:29) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:846) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:833) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:781) at org.apache.maven.plugin.war.util.WebappStructureSerializer.fromXml(WebappStructureSerializer.java:73) at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:404) at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:375) at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:181) at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:143) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) at
Re: problem s prechodem na netbeans 6.7
Zdravím, pokud je to Maven projekt, veškeré nastavení se řídí nastavením Maven projektu. Nastavte si požadované verze v něm, a NetBeans se tím budou řídit. S pozdravem Filip Jirsák Dne 17. září 2009 10:31 Petr Burdik p...@petujek.net napsal(a): Dobry den, tak je to jeste horsi. Zazalohoval jsem si adresar s netbeans. Zalozil jsem webovy projekt pres maven. Spustil ho jak je a vse jede. Pri druhem pokusu o spusteni se objevuje znovu ta sama hlaska. Doporucujete tedy downgrade na JDK 1.5? S pozdravem Pet
Re: problem s prechodem na netbeans 6.7
No pokud by tam primo byl problem, proc se ale projevuje jenom pri dalsich spustenich a prvni spusteni probehne naprosto bez problemu? Pet Dne Thu, 17 Sep 2009 10:47:21 +0200 Filip Jirsák filip.jir...@gmail.com napsal/-a: Zdravím, pokud je to Maven projekt, veškeré nastavení se řídí nastavením Maven projektu. Nastavte si požadované verze v něm, a NetBeans se tím budou řídit. S pozdravem Filip Jirsák Dne 17. září 2009 10:31 Petr Burdik p...@petujek.net napsal(a): Dobry den, tak je to jeste horsi. Zazalohoval jsem si adresar s netbeans. Zalozil jsem webovy projekt pres maven. Spustil ho jak je a vse jede. Pri druhem pokusu o spusteni se objevuje znovu ta sama hlaska. Doporucujete tedy downgrade na JDK 1.5? S pozdravem Pet
Re: problem s prechodem na netbeans 6.7
Pro jistotu jeste pridavam log: NetBeans: Executing 'mvn -Dnetbeans.deploy=true -Dnetbeans.execution=true package' NetBeans: JAVA_HOME =/usr/local/diablo-jdk1.6.0 Scanning for projects... Building itsynapse25 JEE5 Webapp task-segment: [package] [resources:resources {execution: default-resources}] [WARNING] Using platform encoding (ISO8859-1 actually) to copy filtered resources, i.e. build is platform dependent! skip non existing resourceDirectory /usr/home/pet/NetBeansProjects/itsynapse25/src/main/resources [compiler:compile {execution: default-compile}] Nothing to compile - all classes are up to date [resources:testResources {execution: default-testResources}] [WARNING] Using platform encoding (ISO8859-1 actually) to copy filtered resources, i.e. build is platform dependent! skip non existing resourceDirectory /usr/home/pet/NetBeansProjects/itsynapse25/src/test/resources [compiler:testCompile {execution: default-testCompile}] Nothing to compile - all classes are up to date [surefire:test {execution: default-test}] No tests to run. [war:war {execution: default-war}] Packaging webapp [ERROR]FATAL ERROR Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor Debugging information message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor class : org.apache.maven.plugin.war.util.WebappStructure required-type : org.apache.maven.plugin.war.util.WebappStructure path: /webapp-structure line number : 1 --- Trace com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor Debugging information message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Cannot construct org.apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor class : org.apache.maven.plugin.war.util.WebappStructure required-type : org.apache.maven.plugin.war.util.WebappStructure path: /webapp-structure line number : 1 --- at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:63) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:45) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:46) at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:117) at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.java:29) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:846) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:833) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:781) at org.apache.maven.plugin.war.util.WebappStructureSerializer.fromXml(WebappStructureSerializer.java:73) at org.apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.java:404) at org.apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.java:375) at org.apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.java:181) at org.apache.maven.plugin.war.WarMojo.execute(WarMojo.java:143) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) at
Re: problem s prechodem na netbeans 6.7
Asi při prvním spuštění probíhá něco jinak, pravděpodobně se spouští víc cílů (kompilace apod.). Zkuste aplikaci spustit přímo z příkazového řádku v Mavenu, uvidíte, zda se to bude chovat stejně. S pozdravem Filip Jirsák Dne 17. září 2009 10:50 Petr Burdik p...@petujek.net napsal(a): No pokud by tam primo byl problem, proc se ale projevuje jenom pri dalsich spustenich a prvni spusteni probehne naprosto bez problemu? Pet Dne Thu, 17 Sep 2009 10:47:21 +0200 Filip Jirsák filip.jir...@gmail.com napsal/-a: Zdravím, pokud je to Maven projekt, veškeré nastavení se řídí nastavením Maven projektu. Nastavte si požadované verze v něm, a NetBeans se tím budou řídit. S pozdravem Filip Jirsák Dne 17. září 2009 10:31 Petr Burdik p...@petujek.net napsal(a): Dobry den, tak je to jeste horsi. Zazalohoval jsem si adresar s netbeans. Zalozil jsem webovy projekt pres maven. Spustil ho jak je a vse jede. Pri druhem pokusu o spusteni se objevuje znovu ta sama hlaska. Doporucujete tedy downgrade na JDK 1.5? S pozdravem Pet
Re: problem s prechodem na netbeans 6.7
Dobry den, tak zahada je konecne vyresene a muzu konecne klidneji spat :D Kopiroval jsem si posledni tri roky konfigurace systemu. Bohuzel po predchozim nucenem reinstalu jsem o nekolik souboru prisel. Tak jsem nemel namountovany proc filesystem ktery java vyzaduje pro svou funkcnost a nemel jsem vypnute ipv6only. Dekuji moc za nakopnuti. Pet Dne Thu, 17 Sep 2009 11:21:40 +0200 Filip Jirsák filip.jir...@gmail.com napsal/-a: Asi při prvním spuštění probíhá něco jinak, pravděpodobně se spouští víc cílů (kompilace apod.). Zkuste aplikaci spustit přímo z příkazového řádku v Mavenu, uvidíte, zda se to bude chovat stejně. S pozdravem Filip Jirsák Dne 17. září 2009 10:50 Petr Burdik p...@petujek.net napsal(a): No pokud by tam primo byl problem, proc se ale projevuje jenom pri dalsich spustenich a prvni spusteni probehne naprosto bez problemu? Pet Dne Thu, 17 Sep 2009 10:47:21 +0200 Filip Jirsák filip.jir...@gmail.com napsal/-a: Zdravím, pokud je to Maven projekt, veškeré nastavení se řídí nastavením Maven projektu. Nastavte si požadované verze v něm, a NetBeans se tím budou řídit. S pozdravem Filip Jirsák Dne 17. září 2009 10:31 Petr Burdik p...@petujek.net napsal(a): Dobry den, tak je to jeste horsi. Zazalohoval jsem si adresar s netbeans. Zalozil jsem webovy projekt pres maven. Spustil ho jak je a vse jede. Pri druhem pokusu o spusteni se objevuje znovu ta sama hlaska. Doporucujete tedy downgrade na JDK 1.5? S pozdravem Pet -- Petr Burdik mail: p...@petujek.net www: http://www.petujek.net/
Re: Problemy s kodovanim cestiny
Dne Wed, 16 Sep 2009 13:23:47 +0200 Martin Kuba ma...@ics.muni.cz napsal/-a: To nepomůže, servlet engine nečeká parametr charset, takže ho ignoruje. Ono to vypada, ze mi nepomuze vubec nic :'( Uz jsem z toho vazne gogo: vsechno mam v UTF8 a kdyz jsem ponastavoval i UTF8 ve Wicketu, tak mi to na webu zobrazuje cestinu spravne, ale zase jsem zjistil, ze mi nefunguje parser, volany ze sousedniho projektu, a to ani mimo web v obycejne konzolovce: - mam project A s frameworkem a v nem parser s regexem, ktery obsahuje znak pro stupen - mam obycejnou consolovou aplikaci jako project B, kteremu reknu, ze je zavisly na projektu A. V metode main() nadefinuju string taky se znakem pro stupen a zavolam parser z projektu A. - vsechno je v UTF8, projekty jsou Maven managed, parent POM obou projektu ma property project.build.sourceEncodingUTF-8/project.build.sourceEncoding - spustim main() a parser nefunguje. Kdyz trasuju do Pattern.compile(), tak mi Eclipse ve stringu predavanem do compile() zobrazuje pred tim stupnem navic nejaky velky A s nabodenickem (uz si nepamatuju co to presne bylo), cili ten Maven tam prelozi buhvi co. - Kdyz v parent POMu vyhodim to sourceEncoding a necham to by default, tak to funguje, ale zase mi TomCat mrsi cestinu :-( -- Jaka je spravna cesta z toho ven, aby ta cestina fungovala vsude a bez problemu? Diky za kazdou pomoc, pf
RE: Problemy s kodovanim cestiny
Jiz jsem to jednou psal, ale napisu to znova: zdrojove kody v Jave piste zasadne v ASCII. Pokud uz tam chcete dat nejaky exoticky znak, tak JEDINE pres \u Dodrzovani tohoto pravidla usetri hodne boleni hlavy. Kamil Podlesak -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz]on Behalf Of Petr Fejfar Sent: Thursday, September 17, 2009 6:31 PM To: Java Subject: Re: Problemy s kodovanim cestiny Dne Wed, 16 Sep 2009 13:23:47 +0200 Martin Kuba ma...@ics.muni.cz napsal/-a: To nepomůže, servlet engine nečeká parametr charset, takže ho ignoruje. Ono to vypada, ze mi nepomuze vubec nic :'( Uz jsem z toho vazne gogo: vsechno mam v UTF8 a kdyz jsem ponastavoval i UTF8 ve Wicketu, tak mi to na webu zobrazuje cestinu spravne, ale zase jsem zjistil, ze mi nefunguje parser, volany ze sousedniho projektu, a to ani mimo web v obycejne konzolovce: - mam project A s frameworkem a v nem parser s regexem, ktery obsahuje znak pro stupen - mam obycejnou consolovou aplikaci jako project B, kteremu reknu, ze je zavisly na projektu A. V metode main() nadefinuju string taky se znakem pro stupen a zavolam parser z projektu A. - vsechno je v UTF8, projekty jsou Maven managed, parent POM obou projektu ma property project.build.sourceEncodingUTF-8/project.build.sourceEncoding - spustim main() a parser nefunguje. Kdyz trasuju do Pattern.compile(), tak mi Eclipse ve stringu predavanem do compile() zobrazuje pred tim stupnem navic nejaky velky A s nabodenickem (uz si nepamatuju co to presne bylo), cili ten Maven tam prelozi buhvi co. - Kdyz v parent POMu vyhodim to sourceEncoding a necham to by default, tak to funguje, ale zase mi TomCat mrsi cestinu :-( -- Jaka je spravna cesta z toho ven, aby ta cestina fungovala vsude a bez problemu? Diky za kazdou pomoc, pf
Re: Problemy s kodovanim cestiny
Dne Thu, 17 Sep 2009 19:02:17 +0200 Podlesak Kamil kamil.podle...@ips-ag.net napsal/-a: Jiz jsem to jednou psal, ale napisu to znova: zdrojove kody v Jave piste zasadne v ASCII. Jestli mi neco neuniklo, tak jsi mi psal, ze mam-li non-ASCII obsah, nesmim pouzivat GET... Pokud uz tam chcete dat nejaky exoticky znak, tak JEDINE pres \u Hmmm... Ale tady http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5 Dodrzovani tohoto pravidla usetri hodne boleni hlavy.
Re: Problemy s kodovanim cestiny
asddsdadsdasdasdasdasdasdDne Thu, 17 Sep 2009 19:02:17 +0200 Podlesak Kamil kamil.podle...@ips-ag.net napsal/-a: Jiz jsem to jednou psal, ale napisu to znova: zdrojove kody v Jave piste zasadne v ASCII. Jestli mi neco neuniklo, tak jsi mi psal, ze mam-li non-ASCII obsah, nesmim pouzivat GET... Pokud uz tam chcete dat nejaky exoticky znak, tak JEDINE pres \u Hmmm... no to by me ani ve snu nenapadlo, ze ve 21. stoleti existuje prostredi, kde je nutne znak, ktery lze napsat na klavesnici a korektne zobrazit na obrazovce, zejmena kdyz prostredi predstira, ze je Unicode awared, zadavat jak pred 30 lety escape sekvenci. (Ale asi melo, kdyz v .properties lze pres veskery pokrok v IT zadavat stale jen Latin-1...) Alespon v JLS pisou (http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5), ze *Characters may be represented by escape sequences* :-OOO Ne ze musi... Kdo ten bordel dela? Maven? Nebo to vadi samotnemu jazyku? Dodrzovani tohoto pravidla usetri hodne boleni hlavy. Diky za radu - zkusime to prepsat a pretestovat cely ten deploy retezec, jestli ta cestine zacne konecne fungovat. Diky, pf