Re: Ako posielať veľké dáta - REST, alebo JMS, ...
Jak REST tak JMS nejsou vhodné technologie na přenos velkých dat. Nicméně, máme exporter do formátu CSV a dělat to jako službu REST je velmi nevhodné pro dávkové posílání - velké množství alokací a pomalost při použití ORM. Takže pro přenos se udělal speciální ne-REST HTTP endpoint, který data streamuje. Nejefektivnější by byl samozřejmě speciální kanál (např. FTP/SSL) kam by se nahrály dávkové soubory (surová data) a ta se naimportovala, pokud je taková možnost průchodná. - Later, Lukas -- Sent from: http://konference-java-cz.958153.n3.nabble.com/
Re: Hibernate SELECT bez FROM tabuľky
Denormalizujte schema a mate po problemu. Lukas Sent from Samsung Mobile Original message From: Rastislav Siekel sie...@prosoft.sk Date: To: Java konference@java.cz Subject: Re: Hibernate SELECT bez FROM tabuľky Vďaka za názor, ale príkaz SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE detail.master_id = master.id AND detail.sloupce konec) vyberie všetky záznamy Master, pretože ku každému existuje nejaký detail, ktorý hovorí, že oprava nie je ukončená - prvý detail. Mňa zaujíma atribút ukončenie len na poslednom detaile. Rastislav Bedo Siekel Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 On 27. 6. 2013 18:44, Petr Franta wrote: Myslím si, že by to mělo jít vyřešit pomocí podmínky exists nebo not exists: SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE detail.master_id = master.id AND detail.sloupce konec) Nebo něco podobného. Petr 2013/6/27 Rastislav Siekel sie...@prosoft.sk Možno som to nenapísal úplne jasne - skúsim inak Mám záznamy o oprave - hlavičky, a ku každej môže byť 1 - N detailov (priebeh opravy, na poslednej je aj prípadne ukončenie). Vytváram SELECT pre zoznam opráv, ktoré ešte nemajú koniec, t.j. s podmienkou, či posledný detail ešte nemá zadaný koniec (tie predošlé ho určite nemajú zadaný, takže obyčajný JOIN by mi vybral všetky opravy, lebo ku každému master existuje určite aspoň jeden detail, ktorý vyhovuje podmienke). posledný detail zistím v SQL tak ako som uviedol nižšie. Rastislav Bedo Siekel P.S. From detail d where d.master=:master order by d.order Tento príkaz vypíše pre 1 master všetky detaily, čo určite nie je to, čo hľadám. Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 On 27. 6. 2013 16:11, Martin Beránek wrote: Není moc jasné zadání, ale hql From detail d where d.master=:master order by d.order Podle mě dělá co požadujete Martin Dne 27.6.2013 15:36 Rastislav Siekel sie...@prosoft.sk napsal(a): Otočiť to na vyhľadávanie detail JOIN master by v tomto prípade nešlo. Výsledok má byť zoznam mastrov (filtrovaný na ďalšie podmienky) s tým, že sú zadané podmienky aj na posledný detail. Principiálne hľadám, či je možné v Hibernate spraviť SELECT * FROM( SELECT...) Rastislav Bedo Siekel Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 On 27. 6. 2013 15:11, ŠVARC Jiří wrote: Nevím jestli jsem dobře porozuměl, ale nešlo by to realizovat vyhledáním v seznamu detailů s kritériem odkazu na mastera, nastavením řazení a query.setMaxResults(1)? ing. Jiří Švarc Programmer Analyst Asseco Central Europe, a.s. Solutions for Demanding Business Budějovická 778/3a, 140 00 Praha 4 Czech Republic Mobile: +420 737 944 536 jiri.sv...@asseco-ce.com www.asseco-ce.com From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Rastislav Siekel Sent: Thursday, June 27, 2013 2:57 PM To: Java Subject: Hibernate SELECT bez FROM tabuľky Zdravím vospolok, chcel by som sa spýtať, či niekto neriešil nasledujúci problém: V Oracle mám tabuľky master a detail. Mám master a chcem k nemu nájsť posledný detail, čo spravím v SQL takto: ... AND detail_id = ( SELECT * FROM ( SELECT detail_id FROM detail ORDER BY detail_time DESC ) WHERE rownum = 1 ) ... Tu som narazil na problém, že Hibernate pomocou Criteria API asi nevie spraviť SELECT FROM (...) WHERE Aj DetachedCriteria, aj Criteria si vyžadujú Entitu (DTO), nad ktorou pripravia SQL príkaz. Je nejaká možnosť ako toto obísť? Vďaka, Rastislav Bedo Siekel Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20
Re: Glassfish -vypadek napajeni
Zalohovat. LZ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Glassfish-vypadek-napajeni-tp4025116p4025117.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Zabezpecenie legacy web aplikacie proti XSS utokom
Cau, jednoducha dve pravidla: a) vsecheno co jde na vystup escapovat - tj. nikde nepouzivat {} ale jen c:out a custom tagy. Ty slozene zavorky pro vypis vystupu v JSP je IMHO hodne velka chyba v navrhu vzhledem k XSS. b) kdyz uz jde nekde ven (X)HTML tak procistit - treba pomoci Antisamy. Lukas 2012/4/27 Peter Štibraný pstibr...@gmail.com Dobry den prajem, chcel by som sa spytat na vase skusenosti so zabezpecenim stredne velkej webovej aplikacie voci cross-site scripting utokom [3]. Na generovanie weboveho vystupu pouzivame JSP + JSTL. V aplikacii je niekolko stoviek JSP stranok. Idealne riesenie by bola nejaka context-sensitive automatic sanitization (CSAS) technika fungujuca nad existujucimi JSP strankami. Na zaciatok by postacovalo kontextove escapovanie EL vyrazov v JSP strankach, skriptlety si nechame na neskor :-). Predstavujem si to tak, ze JSP stranka by sledovala doterajsi vystup a browser-context v ktorom sa ten ktory EL vyraz vyskytuje, a podla toho by sa vyescapoval. Ale nic podobne som este nenasiel, neviem ci sa to vobec da urobit. Nasiel som dve Javovske templajtovacie kniznice, ktore maju automaticke kontextove escapovanie: JXT [1] a Google Closure Templates [2], myslim, ze i Velocity ma nejaku podporu. Prepisat mnozstvo JSP stranok vsak asi nebude cesta. Akym sposobom ste pri zabezpecovani legacy webovej aplikacie voci XSS postupovali vy? S pozdravom, -Peter Stibrany [1] https://www.owasp.org/index.php/OWASP_Java_XML_Templates_Project, https://code.google.com/p/owasp-jxt/ [2] https://developers.google.com/closure/templates/docs/security [3] https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
Re: Zabezpecenie legacy web aplikacie proti XSS utokom
Jasne, jsou i lepsi knihovny. Na odkazech, ktere prisly s dotazem je urcite najdete. Daleko pracnejsi je ohlidat ty {}. Lukas 2012/4/27 Peter Štibraný pstibr...@gmail.com Ahoj, odhliadnuc od faktu, ze c:out je na mnohych miestach absolutne nedostatocne riesenie, tak sa musime spolahnut na to, ze vyvojari nezabudnu na spravnom mieste pouzit spravne escapovanie. Ja dufam, ze sa najde i lepsie riesenie :-) -Peter On Friday, 27. April 2012 at 16:14, Lukas Barton wrote: Cau, jednoducha dve pravidla: a) vsecheno co jde na vystup escapovat - tj. nikde nepouzivat {} ale jen c:out a custom tagy. Ty slozene zavorky pro vypis vystupu v JSP je IMHO hodne velka chyba v navrhu vzhledem k XSS. b) kdyz uz jde nekde ven (X)HTML tak procistit - treba pomoci Antisamy. Lukas 2012/4/27 Peter Štibraný pstibr...@gmail.com (mailto: pstibr...@gmail.com) Dobry den prajem, chcel by som sa spytat na vase skusenosti so zabezpecenim stredne velkej webovej aplikacie voci cross-site scripting utokom [3]. Na generovanie weboveho vystupu pouzivame JSP + JSTL. V aplikacii je niekolko stoviek JSP stranok. Idealne riesenie by bola nejaka context-sensitive automatic sanitization (CSAS) technika fungujuca nad existujucimi JSP strankami. Na zaciatok by postacovalo kontextove escapovanie EL vyrazov v JSP strankach, skriptlety si nechame na neskor :-). Predstavujem si to tak, ze JSP stranka by sledovala doterajsi vystup a browser-context v ktorom sa ten ktory EL vyraz vyskytuje, a podla toho by sa vyescapoval. Ale nic podobne som este nenasiel, neviem ci sa to vobec da urobit. Nasiel som dve Javovske templajtovacie kniznice, ktore maju automaticke kontextove escapovanie: JXT [1] a Google Closure Templates [2], myslim, ze i Velocity ma nejaku podporu. Prepisat mnozstvo JSP stranok vsak asi nebude cesta. Akym sposobom ste pri zabezpecovani legacy webovej aplikacie voci XSS postupovali vy? S pozdravom, -Peter Stibrany [1] https://www.owasp.org/index.php/OWASP_Java_XML_Templates_Project, https://code.google.com/p/owasp-jxt/ [2] https://developers.google.com/closure/templates/docs/security [3] https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
Re: web aplikacia a ulozisko na obrazky
Spis nez sql vs nosql to je o spravne volbe file systemu, potrebujete neco skalovatelneho a pokud budete ukladat vylozene obrazky, tak mozna neco s prvky ecm. Dost tedy bude zalezet na platforme' hardwaru a rozpoctu. Do blobu to urcite nedavejte, snad jen male obrazky a jen kdybyste vyzadoval super-integritu. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/web-aplikacia-a-ulozisko-na-obrazky-tp3895315p3897521.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: web aplikacia a ulozisko na obrazky
Vyhoda HDFS je, ze ho muzete geograficky distribuovat a v dane lokalite mit jenom nejakou lehkou proxy, ktera jen presmeruje request na lokalni HDFS cluster.Pokud vsak nebudete mit vic HDFS serveru, bude lepsi pouzit primo filesystem. A jen to naimplementovat tak, ze v budoucnu v pripade velke zateze je mozne prejit na HDFS.Pro zvyseni vykonu je lepsi pouzit pro servyrovani tech souboru apache, ktery se je bude brat jako staticky obsah primo z toho filesystemu a tento pripadne doplnit o mod_cache.Duvod proc nemit data v DB je treba i doba exportu dane DB, vyssi cena storage za DB apod.Jeste pozor na performance jednotlivych FS, zejmena kdyz date do jednoho adresare hodne souboru, nektere maji seznam souboru jako linked list (pomale) a jine zase maji ruzna omezeni na maximalni pocet.LukasOn 9 Apr 2012 00:11, Libor Jelinek ljeli...@virtage.com wrote: Není to odpověď, ale jednou jsem narazil na tuto analýzu porovnávající ukládání na NTFS v. BLOB v SQL Serveru - http://research.microsoft.com/pubs/64525/tr-2006-45.pdf. Závěr je, že to 256 kB je BLOB rychlejší, než filesystem. Nevím, jak by to mohlo být u PgSQL... Jinak, když dojdete k nějakým závěrům, tak se podělte. Sám potřebuji výhledově v této oblasti udělat průzkum a rozhodnutí :-)Libor 2012/4/8 Ivan Polak ivan.po...@f4s.sk zdravim konferenciu, potrebujem vo web aplikacii (tomcat+java+postgreSQL) ukladat tisicky obrazkov, ktore uploaduju klienti (pocita sa hlavne s velkym poctom ich zobrazovani - aj ako thumbnail, aj plna velkost). rozhodol som sa, ze to budem ukladat na disk a nie do DB (ako blob). do DB pojdu len meta-data (typ obrazku, cesta k nemu na disku, velkost, komu patri, atd). zvazujem ale pouzitie nejakeho riesenia, ako napr. hadoop (http://hadoop.apache.org/), uz som ho raz pouzil, ale tam bolo zobrazovanie-nacotanie vo velmi malej miere, klient ulozil subor, zopar-krat editoval, a potom sa uz nikto niekdy k tomu suboru ulozenemu v hadoop nevracal, v tejto mojej aplikacii musim pocitat hlavne s tym nacitavanim-zobrazovanim (teda nacitanie musi byt velmi rychle + pripadne pouzit nejaku cachce - ehcache alebo Memcached). prosim, ma niekto skusenosti s riesenim taketho problemu. dakujem Ivan
Re: parsovanie XML-ka
Problem je v nastaveni xml parseru. Kazdy slusny parwer vcetne toho co je v jave nabizi nastaveni toho, jak se ma nakladat s whitespace. Potrebujete to nastavit tak, aby jej ignoroval. Vse je v dokumentaci, pisu z tabletu, takze si linky uz najdete sam :-) LZ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/parsovanie-XML-ka-tp3770834p3774925.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: java7 - je už stable?
No tak hlavne jste neuvedl, kterouze Javu mate na mysli. Paklize stavite sve produkty na RHELu od Red Hatu, muzete myslet OpenJDK. Tam by byla moje odpoved - zatim ne. http://red.ht/ynWghf U sunovske Javy tezko rict. Historie ukazuje, ze nejstabilnejsi jsou starsi verze s mnoha zaplatami, coz se tyka sestky take. Nicmene to byste se mel spis ptat Vasich kvalitaku, nez nas ;-) - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/java7-je-u-stable-tp3692746p3693087.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: =?UTF-8?Q?Re:=20Hibernate, =20v=C3=BDkonnost=20SQL=20dotazu=20na?= d single table hierarchií - VYŘEŠENO
staci psat bez diakritiky - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/UTF-8-Q-Re-20Hibernate-20v-C3-BDkonnost-20SQL-20dotazu-20na-d-single-table-hierarchii-VY-E-ENO-tp3551422p3552499.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: skusenosti s gwt
Ahoj, my jsme narazili na dva zasadni problemy: a) vygenerovany JS nejde v podstate profilovat/debuggovat b) pro vetsi aplikace roste doba kompilace a spotreba pameti behem kompilace - pro 300 000 radek kodu pocitej s desitkama minut a 12 GB pameti A pak obcas neco prestane fungovat, treba split pointy, takze misto vice mensich JS souboru compilator generuje jeden obrovskej. A najit proc si mysli, ze je nejakej kod dosazitelnej znamena debuggovat dovnitr kompilatoru. Lukas On Mon, Sep 26, 2011 at 10:33 AM, x y jsoale...@gmail.com wrote: Chcem sa spytat na skusenosti s GWT na projektoch(Vyhody/nevyhody). Ci ma v dnesnej dobe zmysel postavit projekt na tejto technologii, ak ma tak v akych pripadoch ju zvolit/nezvolit. Podla http://www.thoughtworks.com/radar zjavne GWT nieje dobrou volbou. Citujem: GWT is a reasonable implementation of a poor architectural choice. GWT attempts to hide many of the details of the web as a platform by creating desktop metaphors in Java and generating JavaScript code to implement them. First, in many ways, JavaScript is more powerful and expressive than Java, so we suspect that the generation is going in the wrong direction. Secondly, it is impossible to hide a complex abstraction difference like that from event-driven desktop to stateless-web without leaky abstraction headaches eventually popping up. Third, it suffers from the same shortcomings of many elaborate frameworks, where building simple, aligned applications is quick and easy, building more sophisticated but not supported functionality is possible but difficult, and building the level of sophistication required by any non-trivial application becomes either impossible or so difficult it isn’t reasonable.
Re: skusenosti s gwt
No vzhledem k defektum v samotnem kompilatoru je obcas nutne debuggovat ten vygenerovany Java Script, a to je opravdu lahudka. Stejne tak profilovani nema cenu delat v hosted modu. Lukas 2011/9/26 Vladislav Krejcirik vkrejci...@gmail.com Vygenerovany JS lze debugovat v Eclipse kdyz mate nainstalovany GWT plugin. On Mon, Sep 26, 2011 at 11:12 AM, Peter Hanuliak phanul...@googlemail.com wrote: otazka znie, ci ste zbehnuty v tomto frameworku, alebo nie pokial mate know-how tak viete ake problemy nastanu a ako ich budete riesit + viete dopredu lepsie odhadnut narocnost On Mon, Sep 26, 2011 at 10:33 AM, x y jsoale...@gmail.com wrote: Chcem sa spytat na skusenosti s GWT na projektoch(Vyhody/nevyhody). Ci ma v dnesnej dobe zmysel postavit projekt na tejto technologii, ak ma tak v akych pripadoch ju zvolit/nezvolit. Podla http://www.thoughtworks.com/radar zjavne GWT nieje dobrou volbou. Citujem: GWT is a reasonable implementation of a poor architectural choice. GWT attempts to hide many of the details of the web as a platform by creating desktop metaphors in Java and generating JavaScript code to implement them. First, in many ways, JavaScript is more powerful and expressive than Java, so we suspect that the generation is going in the wrong direction. Secondly, it is impossible to hide a complex abstraction difference like that from event-driven desktop to stateless-web without leaky abstraction headaches eventually popping up. Third, it suffers from the same shortcomings of many elaborate frameworks, where building simple, aligned applications is quick and easy, building more sophisticated but not supported functionality is possible but difficult, and building the level of sophistication required by any non-trivial application becomes either impossible or so difficult it isn't reasonable. -- /**/ Best regards / S pozdravem Vladislav Krejčiřík http://www.vkrejcirik.info
Re: Prázdné okno s JFrame v Ubuntu
Zkontrolujte (v tomto poradi): ~/.xsession-errors /var/log/messages /var/log/Xorg.0.log - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Prazdne-okno-s-JFrame-v-Ubuntu-tp3351715p3354911.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Prázdné okno s JFrame v Ubuntu
Zkontrolujte (v tomto poradi): ~/.xsession-errors /var/log/messages /var/log/Xorg.0.log - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Prazdne-okno-s-JFrame-v-Ubuntu-tp3351715p3354912.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: JAX-WS: kde začít
Ja bych se od enterprise veci drzel co nejdal :-) Ne ted vazne, stahnete si nejakou implementaci (myslim ze Metro se to jmenuje) a je tam cela rada tutorialu formou copy, paste, run, ktere funguji. Pripadne si stahnete trial verzi nejakeho enterprise produktu a postupujte dle oficialniho manualu. Taky to muze pomoct. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/JAX-WS-kde-za-it-tp3308417p3310348.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Ochrana proti XSS v uzivatelem zadanem HTML
Ale ja nechci escapovat XML (a na to bych pouzil nejakou lepsi knihovnu, treba OWASP ESAPI). Ja opravdu chci filtrovat HTML, ktere uzivatel zadava pres Rich Text HTML editor (je tam moznost primo editovat zdrojak) nebo ho do systemu muze nacpat rovnou pres REST. A toto HTML chci pak zpetne zobrazit jakozto HTML, tak aby prohlizec spravne interpretoval tagy. Jen chci z toho HTML vyfiltrovat nebezpecne konstrukce. Lukas 2011/8/16 Ondra Medek xmed...@gmail.com Ahoj, proti XSS ze lze zajistit 1. na vstupu a/nebo 2. na vystupu. Ty hledas nastroj pro 1., coz muze byt slozita uloha, ale na druhou stranu mas velkou jistotu, ze zobrazeni dat je bezpecne. Lze ovsem vstup od uzivatele nechat byt, a osetrit text na vystupu - pouze prevezt par znaku (\) na XML/HTML entity. Coz je jednoducha uloha, avsak si musis byt jist, ze to provedes vzdy. Pokud se chces podivat na tetno pripad, tak treba viz https://github.com/zkoss/zk/blob/master/zcommon/src/org/zkoss/xml/XMLs.java metoda escapeXML. 2011/8/15 Lukas Barton lu...@cnawr.cz: Ahoj, ve webaplikaci ma moznost uzivatel zadat HTML pomoci Rich Text HTML editoru TinyMCE. Toho HTML ma moznost editovat i rucne. Zaroven pres REST muze na server nahrat v podstate jakekoliv HTML. Aplikace potom toto HTML zobrazuje ve strance uzivatelum. Hledal jsem tedy nejakou knihovnu, ktera by toto HTML procistila na prijatelnou podmnozinu. Nasel jsem http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizera https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project. Bohuzel se mi nepodarilo najit jake jsou s tema knihovnama zkusenosti. Zaroven mi neprijdou jako moc zive projekty. Jakou knihovnu pouzivate na cisteni HTML zadaneho uzivatelem? Diky, Lukas -- Ondra Medek
Ochrana proti XSS v uzivatelem zadanem HTML
Ahoj, ve webaplikaci ma moznost uzivatel zadat HTML pomoci Rich Text HTML editoru TinyMCE. Toho HTML ma moznost editovat i rucne. Zaroven pres REST muze na server nahrat v podstate jakekoliv HTML. Aplikace potom toto HTML zobrazuje ve strance uzivatelum. Hledal jsem tedy nejakou knihovnu, ktera by toto HTML procistila na prijatelnou podmnozinu. Nasel jsem http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer a https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project. Bohuzel se mi nepodarilo najit jake jsou s tema knihovnama zkusenosti. Zaroven mi neprijdou jako moc zive projekty. Jakou knihovnu pouzivate na cisteni HTML zadaneho uzivatelem? Diky, Lukas
Re: zapis do DB mimo aktivnej transakcie
Zalezi jak mate rizene transakce, pokud deklarativne pres Spring, tak zapis do DB provedte v novem vlakne. Pripadne muzete zkusit ziskat primo nove JDBC spojeni a transakce si nad timto spojenim zaridit programaticky. Lukas 2011/7/21 Ivan Polak ivan.po...@f4s.sk Zdravim konferenciu, mam dlho trvajuci vypocet, ktory spracovava velky pocet zaznamov a nakonci zapise vysledky (zapis do DB sa robi po spracovani kazdeho zaznamu, ale transakcia sa commitne az ked sa skonci cely vypocet). pocas priebehu tohoto vypoctu by som potreboval si niekde do DB poznacit kolko uz zaznamov bolo spracovanych. chcel som to robit nasledovnou funkciou: Session session = HibernateSessionHelper.getHibernateSession(getEntityManager()); Transaction transaction = session.beginTransaction(); String sql = UPDATE ccc set value = value + 1 where id = 1; SQLQuery query = session.createSQLQuery(sql); query.executeUpdate(); transaction.commit(); pocet sa v DB aktualizuje (aj sa zapise do DB), ale po spracovavani dalsieho zaznamu pri vykonani ulozenia do DB (DB sa nezapisuje) pride k nasledovnej chybe: org.springframework.dao.InvalidDataAccessApiUsageException: no transaction is in progress; nested exception is javax.persistence.TransactionRequiredException: no transaction is in progress neviete, prosim ako spravit takyto zapis do DB mimo aktivnej transakcie. dakujem Ivan
Re: Vytvoreni instance XML objektu z XSD definice
Vlado, myslim ze se tady snazis michat dve veci. DOM a XSD. Prvni jmenovany slouzi k manupulaci s (ted to zjednodusim) XML, druhy je urcen pro popis a kontrolu XML dokumentu. Krome jineho lze namapovat na JavaBeany a ruzne jine struktury zname z pocitacovych jazyku. To co asi chces je nejprve dokument zvalidovat pomoci XSD schematu (doporucuji ruzne tutorialy na netu), a pote jej proste a jednoudse nacist do DOMu a parsovat. Je mozne, ze nejaka DOM knihovna to bude umet udelat v jednom, ale v podstate jsou to dve ruzne veci. Nebo jsem te mozna spatne pochopil. Zkus to reformulovat. http://en.wikipedia.org/wiki/Document_Object_Model http://en.wikipedia.org/wiki/XML_Schema_(W3C) - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Vytvoreni-instance-XML-objektu-z-XSD-definice-tp2837707p2838272.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: moduly v aplikaci
Zvažte taky http://picocontainer.org - jednou se mi docela hodil. Netřeba toho studovat moc a přesto poskytuje dobré výsledky. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/moduly-v-aplikaci-tp2599696p2601941.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Java webstart
Trošku bych se postavil za JWS. Je to dobrá technologie, která funguje. Nicméně jakmile máte nativní knihovny nebo endorsed jary, tak je to pochopitelně potíž. Pokud ale nic takového aplikace nepotřebuje, z JWS se stává dobrý sluha. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Java-webstart-tp2567175p2573937.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: OpenJDK vs. Sun JDK
Lukas quot;lzapquot; Zapletal wrote: ... pouzivat jednu nebo druhou implementacy, ale ... ...implementaci... To proste bije do oci, to se musi napravit. Sorry. :-) LZ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/OpenJDK-vs-Sun-JDK-tp2465442p2472490.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: OpenJDK vs. Sun JDK
Vsechno na co se ptate mate tady http://en.wikipedia.org/wiki/OpenJDK K tomu pridam, ze je nutne davat pozor na to, pod kterou javou sve programy spoustite a pod cim jsou testovany. Neni problem pouzivat jednu nebo druhou implementacy, ale ony se lisi. Takze je nutne pouzivat tu, pod kterou je autor programu testuje. U velmi jednoduchych programu je to jedno. U slozitejsich (nebo tech co pouzivaji treba Swing) uz to jedno neni a program muze padat. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/OpenJDK-vs-Sun-JDK-tp2465442p2465658.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Co teď letí v Javě na web a verzování?
Pokud s gitem začínáte, vřele doporučuji knihu (zdarma ke stažení) Pro Git: http://knihy.nic.cz/ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Co-te-leti-v-Jav-na-web-a-verzovani-tp2411048p2412852.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: tomcat + AJAX request a vratene 2 session
Jak muze padnout session kdyz tam delate requesty? Sice pres AJAX, ale delate (predpokladam ze budou v kratsich intervalech nez 30 minut). Paklize je AJAXova i neAJAXova cast v jednom kontextu, nemelo by to takhle padat, ne? Pak nechapu 2 session. Sezeni muze byt jen jedno - identifikovane je pomoci cookie, ta ma vzdy jen jednu hodnotu. Zkontrolujte si sessions primo v Tomcatu. Ukladaji se do session.ser souboru (a pristup k datum je pres tomcati konzoli). Alespon myslim, ze to umi Tomcat zobrazit. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/tomcat-AJAX-request-a-vratene-2-session-tp2119064p2125490.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Virtualizace vyvojoveho prostredi
Velmi dobra pripominka ty dva monitory! Myslim ze NX neni VNC, protoze NX klient potrebuje mit instalovane jakesi fonty a podobne veci. Rekl bych ze je to nejaka varianta X protokolu pres SSH, mozna s kombinaci nejakych technik ktere se objevily ve VNC. Kazdopadne je to paradne rychle a bezpecne. Co vice si prat? LZ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Virtualizace-vyvojoveho-prostredi-tp2117598p2125510.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Virtualizace vyvojoveho prostredi
Dobry den, opravdu se musi jednat o virtualizaci pokud se jedna o server (instanci) na ktere bude probihat vyvoj v eclipse? Virtualizace ano pro jednotlive prostredi, ci server a podobne. Ale co by se tykalo vyvoje samotneho, tam bych spise volil terminalovy pristup. A zrejme Linux a terminalovou technologii Nomachine NX, ktera je jedna z nejlepsich (velmi rychla, bezpecna a stabilni - existuje i free verze). Zalezi na tom, jestli je Linux pro vyvoj pruchodny. Nezminil jste mozne platformy. Nicmene pro vyvoj jsem nikdy nic takoveho nezkusil. Pokud se budete do neceho takoveho poustet, byl bych vdecny za report, jak to cele dopadlo. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Virtualizace-vyvojoveho-prostredi-tp2117598p2119116.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re:
Byl bych pro treti navrh implementovany pomoci navrhoveho vzoru Command. Ten je na undo jak delany. http://en.wikipedia.org/wiki/Command_pattern - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/undo-feature-vo-web-aplikacii-tp2039117p2039338.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Thread safe webova aplikace, Tomcat 7
Je mi naprosto jasne, o co jde. :-) Tomcat neni vhodny na jakekoliv vypocty. Pokud ma takova webova aplikace jakkoliv komunikovat s nejakym vypocetnim jadrem systemu, pak bych se snazil tento protokol udelat co nejvice nezavisly na samotnych vypoctech. Tj misto metody spocitejAVratVysledek bych delal neco jako zahajVypocetVratIdVypoctu a jeVypocetHotovId? Ja osobne bych se opravdu bal vytvaret jakakoli vlakna v J2EE kontejneru. Jsou s tim spojene velke problemy, ktere tady vlastne resite. O vlakna se obvkyle stara pool v samotnem kontejneru (zpracovani pozadavku, databaze, dalsi zdroje), pripadna dalsi konfigurace aplikace (ruzna uklizeci vlakna inicializovane v aplikaci). Spolecnym znakem takto vytvorenych vlaken je to, ze se o ne stara zcela kontejner - ukonceni je plne na nem. Takto to je *obvykle* bezproblemove... - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Thread-safe-webova-aplikace-Tomcat-7-tp1971440p1982626.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Thread safe webova aplikace, Tomcat 7
Ja bych se ovsem zeptal - proc by mel Tomcat delat jakekoliv dlouhe vypocty? Tomcat je webovy kontejner a ten neni vhodny na nejaky dlouhe (dlouho = vice nez sekunda) premysleni. Snazil bych se asi tlacit vypocty do jine komponenty a Tomcat s ni integrovat. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Thread-safe-webova-aplikace-Tomcat-7-tp1971440p1971923.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Eclipse RCP
Abych se priznal, prilis nerozumim tomu, co Vam vlastne nejde. Spring muzete pouzivat jak v ramci obycejne (konzolove) aplikace, tak i v RCP aplikaci. Muzete jej pouzivat uplne normane, na zacatku jej inicializujete a proste pouzivate. Pokud mirite nekam do pole integrace mezi OSGi a Spring komponentami, tak tam je to slozitejsi a s timhletim konkretnim pripade nemam zkusenost. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Eclipse-RCP-tp1858054p1863181.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Oracle AQ dequeue problem
Strelba od boku: Mam pocit, ze se u Oracle v JDBC naklada trochu jinak s LOBy. Jsou na to nejake extra tridy... - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Oracle-AQ-dequeue-problem-tp1835029p1842284.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Plugin do Eclipse pre podporu vytvorenia lokalizacie priamo z kodu
Dobry den, gettext-commons knihovna je kompatibilni s GNU Gettextem. Ten umi vse, nac si vzpomenete. Je to nejpouzivanejsi takovy nastroj na svete... http://code.google.com/p/gettext-commons/ Existuje vice knihoven, ktere jsou s nim kompatibilni. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Plugin-do-Eclipse-pre-podporu-vytvorenia-lokalizacie-priamo-z-kodu-tp1831639p1833169.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Cim logujete v ee aplikaciach
Souhlas, to jsem napsal nepresne. Logujeme samozrejme vsechny dulezite veci, nejen neocekavane stavy. Mimochodem to co jsem napsal samozrejme nemuze byt chapano jako dogma. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Cim-logujete-v-ee-aplikaciach-tp1708201p1723435.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Cim logujete v ee aplikaciach
Roman to v podstate srhnul vsechno. Rad bych k tomu dodal, ze logovani do relacnich databazi je podle meho nazoru zverstvo. Na ulozeni kazde zpravy server vynalozi asi tak 20x vetsi usili, nez u obycejneho textoveho souboru. Ty lze navic bezproblemove logovat a archivovat. Je to tedy zbytecne zatezovani serveru s temer nulovym prinosem. Paklize mate potrebu v logovanych zpravach casto vyhledavat (vytvorit si nad danymi tabulemi indexy a umoznit operatorum do nich casto chodit), pak uz bruslime po hodne tenkem lede. Pak uz se zrejme nejedna o aplikacni logovani, ale neco vic - forma aplikacnich dat. Logovani chapu jako cinnost, kdy aplikacni software uklada informace, ktere pouzivaji operatori a vyvojari pri reseni neobvyklych situaci. Vypichnul bych slovo neobvykly. Co se tyka integrace na operations management software, tak muzete s klidnym svedomym ukladat do textovych souboru. Systemy jako HP OpenView nebo IBM Tivoli je bezproblemu nactou a operatori se o problemech vcas dozvi ;-) LZ - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Cim-logujete-v-ee-aplikaciach-tp1708201p1720490.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: content-type a JSP stranka
Rozhoduje take kodovani uvedene v hlavicce HTTP. Tam je co? - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/Re-content-type-a-JSP-stranka-tp1429683p1430604.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Hibernate a diakritika
To ale bude desne pomale, nebot se nepouzije index. Rozumnejsi je pridat sloupec, kde aplikace predpocita hodnotu bezdiakritiky (lowercase,...) a stejne tak upravit vyhledavaci retezec. Dalsi moznost je pouzit k hledani v textu neco jineho nez DB... Lukas On 8/29/10, Ondra Medek xmed...@gmail.com wrote: No asi bych zkusil vytvorit DB ulozenou proceduru, ktera vrati retezec bez diakritiky, napr. bezd(), pak v SQL by to bylo neco jako: WHERE lower(bezd(alias)) like lower(...) a toho lze pak docilit pres sqlRestriction, pripadne SQLAliasedCriterion http://opensource.atlassian.com/projects/hibernate/browse/HHH-2952 2010/8/29 danisevsky danisev...@gmail.com: Zdravím, používám hibernate a postgresql a potřeboval bych pořešit následující věc. Vyzvednutí všech uživatelů, kteří mají v políčku alias něco, co obsahuje Žluťoučký nebo žluťoučký: Criteria crit = session.createCriteria(Person.class); crit.add(Restrictions.ilike('alias', 'žluťoučký', MatchMode.ANYWHERE).ignoreCase(); List results = crit.list(); jak nejlépe docílit, aby do výsledku dotazu zahrnul i políčka obsahující Zlutoučký nebo např zlutoucky - tedy částečně nebo zcela bez diakritiky? Předem díky za jakoukoliv radu. -- Ondra Medek
Re: parallel framework s Parallel.for()
IMHO for-join framework a ParallelArray dela presne to ci potrebujete. Pustit to na hash mapu je trivialni uloha. Ted zpameti nevim jestli je to v Java OOB nebo jako separe knihovna. Lukas On 8/29/10, Petr Prikryl peter.prik...@gmail.com wrote: Dobre poledne, pisu program ktery vytvari konfiguracni soubor pro bind, bohuzel mam v hashMap miliony zaznamu (doslova) potreboval bych urcite dopocty delat paralelne. Avsak Java API neprinasi moc peknou podporu jako PLINQ v C# s parallel for each /for. Zkousel jsem hledat nejaky jiny rozumny framework avsak nic zajimaveho jsem nenasel ani ve springu (Task executor by se dal pouzit ale take se mi zda nevnodny). Podpora ma byt az v JDK7 avsak kdy bude vydan je ve hvezdach (rok, 2, 3 viz J EE 6) Nemate nekdo s nejakym frameworkem ktery by mi pomohl? Vypocet bude probihat na nejakem klasickem SMP s nekolika jadry. paralelizovat chci takoveto cykly nad hash mapami: SetEntrybyte[], ListDnsName ipSet = network.getValue().entrySet(); for (Entrybyte[], ListDnsName ip : ipSet) { if (ip.getValue().isEmpty()) { ip.getValue().add(new DnsName(appConfig, network.getKey(), ip.getKey())); } } moje predstava je doParallelFor(/*range or iterator*/){ //for statement; } Diky PP -- Petr Prikryl --- petrprik...@centrum.cz prik...@admin24.cz www.admin24.cz
Re: parallel framework s Parallel.for()
Neni, pouzijte CocurrentHasMap. On 8/29/10, Petr Prikryl peter.prik...@gmail.com wrote: Diky, vyzkousim, jen co se ujistim ze hashMap je threadsafe. PP On 08/29/2010 06:10 PM, Lukas Barton wrote: IMHO for-join framework a ParallelArray dela presne to ci potrebujete. Pustit to na hash mapu je trivialni uloha. Ted zpameti nevim jestli je to v Java OOB nebo jako separe knihovna. Lukas On 8/29/10, Petr Prikrylpeter.prik...@gmail.com wrote: Dobre poledne, pisu program ktery vytvari konfiguracni soubor pro bind, bohuzel mam v hashMap miliony zaznamu (doslova) potreboval bych urcite dopocty delat paralelne. Avsak Java API neprinasi moc peknou podporu jako PLINQ v C# s parallel for each /for. Zkousel jsem hledat nejaky jiny rozumny framework avsak nic zajimaveho jsem nenasel ani ve springu (Task executor by se dal pouzit ale take se mi zda nevnodny). Podpora ma byt az v JDK7 avsak kdy bude vydan je ve hvezdach (rok, 2, 3 viz J EE 6) Nemate nekdo s nejakym frameworkem ktery by mi pomohl? Vypocet bude probihat na nejakem klasickem SMP s nekolika jadry. paralelizovat chci takoveto cykly nad hash mapami: SetEntrybyte[], ListDnsName ipSet = network.getValue().entrySet(); for (Entrybyte[], ListDnsName ip : ipSet) { if (ip.getValue().isEmpty()) { ip.getValue().add(new DnsName(appConfig, network.getKey(), ip.getKey())); } } moje predstava je doParallelFor(/*range or iterator*/){ //for statement; } Diky PP -- Petr Prikryl --- petrprik...@centrum.cz prik...@admin24.cz www.admin24.cz -- Petr Prikryl --- petrprik...@centrum.cz prik...@admin24.cz www.admin24.cz
Re: OT: Licence ~ Možnost užití rhin o z 1.6 přes rozhraní v 1.6 v kom. SW
Tohle asi nebude obecne, ale ve vasem pripade je to jednoduche. Rhino je distribuovana pod dualni licenci MPL 1.1+ a GPL 2.0+. To pro vas znamena, ze muzete dodrzet jen tu mirnejsi variantu MPL, a tudiz neni treba, abyste zverejnili zdrojaky tech vasich pluginu a skriptu. http://www.mozilla.org/MPL/ Navic je zde jeste jedna vec. I kdyby Rhino (nebo jiny takovy scripting plugin) byl licencovan pod GNU GPL 2, tak by nebylo nutne program ci system samotny licencovat pod GNU GPL 2, protoze ten neni nezbytnou soucasti. Zkratka a dobre abyste mohli kompilovat i provozovat Rhino, neni k tomu potreba vas system XY. To ovsem musi platit i opacne - system XY musi jit provozovat bez komponenty Rhino. Tudiz neni splnena nutna podminka pro sireni licence GNU GPL 2. Jak je to u verze 3 nevim. - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/OT-Licence-Mo-nost-u-iti-rhino-z-1-6-p-es-rozhrani-v-1-6-v-kom-SW-tp1106555p1108923.html Sent from the konference java.cz mailing list archive at Nabble.com.
OpenEJB a jine lightweight kontejnery
Zdravim konferenci, pouziva nekdo OpenEJB (http://openejb.apache.org) nebo jiny lehkotonazni J2EE server? Potreboval bych zrychlit ladeni J2EE aplikace, vygooglil jsem prave OpenEJB. Ma nekdo jina doporuceni? Trosku zapasim s konfiguraci. Nedari se mi nastavit globalni JNDI connection factory pro JMS server (ActiveMQ) tak, abych se na nej mohl pripojovat vzdalene (z webove aplikace nasazene na stejnem serveru). K OpenEJB se dodavaji nejake JMS priklady, ale u nich jsou klienti napsani jako EJB klienti (neposilaji JMS zpravy primo). Nehral si nekdo nahodou s takovou konfiguraci? Diky za tipy, rady a jine namety - Later, Lukas -- View this message in context: http://konference-java-cz.958153.n3.nabble.com/OpenEJB-a-jine-lightweight-kontejnery-tp998605p998605.html Sent from the konference java.cz mailing list archive at Nabble.com.
Re: Porovnani objektu
A proc nepouzijete WeakReference nebo WeakHashMap? Lukas 2010/6/29 michal.niko...@elanor.cz mam tridu (smyslena, oholena jen na reprezentaci problemu): public class Neco implements INekohoJineho { public String dejHodnotu(Object element){ String hodnota = Tool.casoveNarocnaMetoda(element); return hodnota; } } metoda dejHodnotu je volana v cyklu frameworku nade mnou a jsou i pripady, kdy je nekolikrat po sobe volana se stejnou instanci element. Hodne by se program zrychlil, kdybych si uchovaval posledni instanci element se kterou bylo volano a jaka pri ni byla vypoctena hodnota. Problem je, ze si nemuzu dovolit drzet uvnitr tridy Neco referenci na element, protoze to nema kdo uklidit a zivotnost tridy Neco je vyrazne vyssi nez element. Napada me misto uchovat jenom System.identityHashCode(element) misto samotne reference na element, ale nemuzu se dopatrat jestli a z ceho vychazi System.identityHashCode(). Vzdy jsem myslel, ze v zajmu rychlosti jde o nativni implementaci, ktera proste vrati adresu instance na heapu. Pak by to bylo bezpecne, ale jistej si nejsem. jak by to teda pak vypadalo : public class Neco implements INekohoJineho { private int ihc = Integer.MIN_VALUE; private String hodnota = null; public String dejHodnotu(Object element){ int foo = System.identityHashCode(element); if (foo == ihc) return hodnota; ihc = foo; hodnota = Tool.casoveNarocnaMetoda(element); return hodnota; } }
GeeCON 2010
Ahoj, přemýšlel jsem, že bych vyrazil na GeeCON (http://2010.geecon.org/). Jenom se mi nechce řídit tam a zpět samotnému. Navíc bych potřeboval být nejpozději v sobotu v poledne zpátky. Proto se chci zeptat, jestli se tam někdo nechystáte. Samozřejmě přispěji na palivo a i si klidně i kus odřídím, jenom nechci jet sám. Dík Lukáš
Re: Hibernate OneToOne Lazy
Namapovat jednosmerne. USERa k EMOPLOYEE dotahovat explicitine. Lukas Ondra Medek wrote: Pokud si pamatuju, tak kdyz je cizi klic v jine tabulce a je to 0..1, tak Hibernate musi tu query udelat. Protoze nevi, jestli tam ma byt null nebo proxy. JJ, to je popsané zde http://community.jboss.org/wiki/Someexplanationsonlazyloadingone-to-one ale existuje nějaký workaround nebo jak se podobné případy běžně řeší?
Re: Hibernate OneToOne Lazy
Pokud si pamatuju, tak kdyz je cizi klic v jine tabulce a je to 0..1, tak Hibernate musi tu query udelat. Protoze nevi, jestli tam ma byt null nebo proxy. Lukas 2010/4/14 Ondra Medek xmed...@gmail.com Ahoj, Mám v Hibernate dvě entity spojené přes nepovinný bidirectional OneToOne vztah: USER (owning, EAGER) -- EMPLOYEE (referenced, LAZY). Bohužel i na referenced side se generuje eager select, viz http://community.jboss.org/wiki/Someexplanationsonlazyloadingone-to-one Jak podobné případy řešíte? Dělat jen jednosměrné vztahy? Déle mne překvapilo: USER získávám přes JPA query. I tak vygeneruje SELECT navíc pro získání té samé entity USER k entitě EMPLOYEE. Tedy získá se USER přes JPA query, pak se k ní načte EMPLOYEE, a pak se k této EMPLOEE načítá zase USER. Proč se nepoužije již získaný USER? Díky -- Ondra Medek
Re: Obdoba PreparedStatement.setMaxRows() na straně databáze
Hibernate to dela - metoda *setMaxResults* Ale nemusi to chodit na vsech DB, zalezi na konkretnim dialektu - jeste nedavno to neumel pro MS SQL v kombinaci s *setFirstResult*. Z tech dialektu se da vykoukat konkretni SQL implementace pro dane databaze. Lukas 2010/3/11 Oto Buchta ta...@buchtovi.cz Zdravím, mám tabulku o milionech záznamů, kde primárním klíčem je long, ale nejedná se o seqenci. Dívám se po generickém nástroji, který by mi vrátil pouze N záznamů s nejvyšším indexem menším než nějaké X, tedy umí něco, co by se mělo v JDBC řešit takto: Connection.prepareStatement(select * from tabulka where klicX order by klic desc).setMaxRows(N); Jenomže toto je na řešeno na straně JDBC driveru, nikoli na straně databáze. Když to chci udělat databázovým strojem, musím to řešit pro každou DB zvlášť: Oracle: select * from tabulka where klicX and rownum=N order by klic desc MySQL: select * from tabulka where klicX order by klic desc limit 1,N Znáte takový generický nástroj, popřípadě dokážete poradit, jak nastavit Hibernate či iBatis či cokoli jiného, aby mi tuto službu poskytlo? Já ne a kamarád Gůgl taky nenapověděl. Dík moc, -- Oto 'tapik' Buchta, ta...@buchtovi.cz, http://tapikuv.blogspot.com
Re: hibernate a instanceOf
Pro kolekce to pomoci tech proxy sleduje - a lze se dostat do zajimavych problemu, kdyz mu tu proxy na kolekci prepiseme. Proxy tam nebudou, pokud to zakazeme, nebo pokud se jedna o instance nenactene pomoci Hibernatu - at uz asociovane k session dodatecne, nebo takove, ktere dosud nejsou perzistentni. Lukas 2010/3/11 Roman Pichlík roman.pich...@gmail.com Pokud si dobře pamatuji, tak tímto způsobem i sleduje, zda a kdy (a jak) se změnily hodnoty, aby je pak uložil. ne nesleduje. Session si drzi vlastni snapshot proti kteremu se dela diff. Jeste jedna z metod na Session vraci proxy a to je load. Diky tomu je mozne udelat perf. optimalizaci napriklad pri mazani. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate hashCide a equals
Jenom pozor, ze je v equals metode nutne pouzivat instanceof misto getClass()==. Hibernate tam totiz dava proxy a pak by to nefungovalo. Lukas Rastislav Siekel wrote: Jakrta Commons-Lang a zatiaľ ma nesklamali. Rastislav Bedo Siekel 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 On 4. 3. 2010 6:54, Daniel Holešínský wrote: Zdravim, pouzivam generator IDE (eclipse, idea). U Hibernate si ale musite dat pozor na kolekce s atributem lazy - mimo session se jinak potkate s vyjimkou org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: , no session or session was closed z pri jakemkoliv pouziti eaual a hashCode (za predpokladu, ze tato kolekce je zahrnuta do vypoctu hashCode a vyhodnoceni equals) DH 2010/3/3 Ivan Polak ivan.po...@f4s.sk mailto:ivan.po...@f4s.sk Ahojte, mam otazku, co pouzivate na generovanie tychto 2 metod pre domain objecty v hibernate ? eclipse generovanie (Source/Generate hashCode() and equals() alebo pouzitie EqualsBuilder a HashCodeBuilder z projektu Jakarta Commons-Lang (http:// commons.apache.org/lang/ http://commons.apache.org/lang/ alebo nieco ine? dakujem Ivan
Re: Re: hibernate hashCide a equals
Asi nikdy neporovnavate objekty vytvorene pres konstruktor a ziskane napr. pomoci session.load. Zkuste napr. nasledujici kod: Session session=HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Event theEvent1 = new Event(); theEvent1.setTitle(Test title); theEvent1.setDate(new Date()); Serializable eventId=session.save(theEvent1); session.getTransaction().commit(); session.close(); session=HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); Event theEvent2 = (Event) session.load(Event.class,eventId); System.out.println(EqualsBuilder.reflectionEquals(theEvent1, theEvent2)); // false session.getTransaction().commit(); session.close(); EqualsBuilder se pokusi porovnat vsechny fieldy na te proxy, tj. v mem pripade: [public static javassist.util.proxy.MethodHandler org.hibernate.tutorial.domain.Event_$$_javassist_0.default_interceptor, private javassist.util.proxy.MethodHandler org.hibernate.tutorial.domain.Event_$$_javassist_0.handler, public static javassist.util.proxy.MethodFilter org.hibernate.tutorial.domain.Event_$$_javassist_0._method_filter, private static java.lang.reflect.Method[] org.hibernate.tutorial.domain.Event_$$_javassist_0._methods_] Coz samozrejme pres new vytvoreny Event nema a vrati tedy false. Stejne tak to nebude chodit, kdyz budete mit IDcko instance assigned HIbernatem, ale zaroven budete mit business key slozenych z nejakych poli Jeden z moznych postupu je pouzit instaceOf a az pak EqualsBuilder - staci na primarni klic. Vice info viz treba: https://www.hibernate.org/109.html a http://www.jroller.com/sjivan/entry/intellij_generated_equals_breaks_hibernate Lukas 2010/3/4 Rastislav Siekel sie...@prosoft.sk Vyzerá to, že máte pravdu :-( Tak ten komentár že sa to prekastuje na spoločného predka odvolávam. Ale že to s Hibernate chodí, je stále pravda :-) Rastislav Bedo Siekel Original Message Subject: Re: hibernate hashCide a equals Date: Thu, 4 Mar 2010 10:23:45 +0100 From: Zdenek Tronicek troni...@fit.cvut.cz troni...@fit.cvut.cz Reply-To: Java konference@java.cz konference@java.cz To: Java konference@java.czkonference@java.cz Takze kdyz lhs je Object a rhs je String, tak lhsClass bude Object.class a rhsClass bude String.class. lhsClass.isInstance(rhs) vrati true (tedy testClass = Object.class) a !rhsClass.isInstance(lhs) je take true, tedy testClass = String.class. To nejak neodpovida tomu, ze se to prekastuje na spoločného predka. Z.T. -- Zdenek Tronicek FIT CTU in Prague Rastislav Siekel napsal(a): Veď preto tam ten Commons-Lang dáva takéto niečo: ... Class lhsClass = lhs.getClass(); Class rhsClass = rhs.getClass(); Class testClass; if (lhsClass.isInstance(rhs)) { testClass = lhsClass; if (!rhsClass.isInstance(lhs)) { // rhsClass is a subclass of lhsClass testClass = rhsClass; } } else if (rhsClass.isInstance(lhs)) { testClass = rhsClass; if (!lhsClass.isInstance(rhs)) { // lhsClass is a subclass of rhsClass testClass = lhsClass; } } else { // The two classes are not related. return false; } ... Čiže si to prekastuje na spoločného predka a až potom porovnáva. Pravdupovediac som to moc neštudoval, po otestovaní s Hiberanate som zistil, že všetko beží ako má a odvtedy to len používam :-) R. Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk sie...@prosoft.sk mailto:sie...@prosoft.sk sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 On 4. 3. 2010 9:43, Lukas Barton wrote: Jenom pozor, ze je v equals metode nutne pouzivat instanceof misto getClass()==. Hibernate tam totiz dava proxy a pak by to nefungovalo. Lukas Rastislav Siekel wrote: Jakrta Commons-Lang a zatiaľ ma nesklamali. Rastislav Bedo Siekel Ing. Rastislav Siekel Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail : sie...@prosoft.sk sie...@prosoft.sk mailto:sie...@prosoft.sk sie...@prosoft.sk Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 0905 34 00 20 On 4. 3. 2010 6:54, Daniel Holešínský wrote: Zdravim, pouzivam generator IDE (eclipse, idea). U Hibernate si ale musite dat pozor na kolekce s atributem lazy - mimo session se jinak potkate s vyjimkou org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: , no session or session was closed z pri
Re: spring-jdbc a transakcie
Pokud se data vejdou do pameti, je lepsi vsechno drzet v pameti a zapsat behem jedne kratke transakce. V pripade rizika konkurencnich zmen dat, je vhodne pouzit optimisticke zamky. Na konci potom jen uzivatele informujete o vysledku. Lukas 2010/2/17 Dusan Zatkovsky msk.c...@gmail.com otevrenou transakci dejme tomu pro cely zivotni cyklus nejakeho dialogu - od otevreni a nacteni udaju do nej, během práce s nim, az po ulozeni ... No, nie je to uplne ten pripad, ale je to podobne. Aplikacia cosi z kadesi stahuje a inserti do databazy. Nasledne commituje a konci. Pokial by v tom bol este nejaky next-next-back-back wizard modifikujuci data v db a vy nechcete mat partialne zmeny v tej databazi, tak to musite spravit dlhou otvorenou transakciou. Databaza je embedded, takze zdroje neriesim... -- Dusan ... tykajte mi
Re: spring-jdbc a transakcie
Doporucil bych ridit transakce deklarativne pomoci anotaci (pripadne konfigurace v XML) mimo perzistentni vrstvu - ta by mela transakce jen propagovat, nikoliv ridit. Nastaveni viz: http://static.springsource.org/spring/docs/2.0.x/reference/transaction.html Pokud chcete transakce ridit programove, tak je nejlepsi zkombinovat JdbcTemplate a TransactionTemplate. Prime volani transaction manageru je taky mozne, ale ponekud neprehledne, Lukas 2010/2/16 Dusan Zatkovsky msk.c...@gmail.com Ahoj. Vzhladom na to, ze vsade na nete narazam na nazor, ze priamo s JDBC pracuje len hazarder a mal by sa pouzit aspon spring-jdbc, snazim sa s nim nejak zoznamit. V niektorych veciach sa mi vcelku paci a dokaze co-to ulahcit, ale zapasim s transakciami. V cistom jdbc je to jednoduche: Connection c = ...; c.execute(begin); try { c.execute... c.execute... c.execute... c.execute... c.execute(commit); // alebo rollback } catch () { c.execute(rollback); } S pomocou JdbcTemplate to ale nefunguje: org.h2.jdbcx.JdbcDataSource ds = new JdbcDataSource(); ds.setURL(jdbc:h2:/tmp/test); JdbcTemplate t = new JdbcTemplate(ds); t.getDataSource().getConnection().setAutoCommit(false); t.execute(drop table if exists data;); t.execute(create table if not exists data ( id integer, name varchar);); t.update(insert into data values ( 1, 'name1');); showTable(t); t.execute(begin); t.update(insert into data values ( 2, 'name2');); showTable(t); t.execute(rollback); showTable(t); Vystup: [{ID=1, NAME=name1}] [{ID=1, NAME=name1}, {ID=2, NAME=name2}] [{ID=1, NAME=name1}, {ID=2, NAME=name2}] Rollback bol ignorovany, pravdepodobne aj begin transaction. Bud som nespravnym sposobom naivne nastavil autocommit, alebo JdbcTemplate robi nejake dalsie harakiri s connection, ktore moc nechapem. Problem je, ze nikde na webe nemozem najst nejaky JEDNODUCHY navod, ako na transakcie so spring-jdbc. Nasiel som len kopu otazok bez odpovedi, pripadne odpovede s linkom na kopu xml chaosu a stovky riadkov mne nepochopitelneho kodu: http://static.springsource.org/spring/docs/2.5.x/reference/transaction.html Poradi niekto? Dik -- Dusan
Re: spring-jdbc a transakcie
Pokud mate transakce na business vrstve a vsechno spravne nastavite, tak se Spring postara o to, ze tam to spojeni bude jenom jedno a jenom jedna transakce (teda pokud vsechno bude v ramci jednoho vlakna). Lukas 2010/2/16 Dusan Zatkovsky msk.c...@gmail.com On Tuesday 16 of February 2010 11:44:22 Martin Kuba wrote: Vyráběl jsem onehdy tutoriál, je tady: http://kore.fi.muni.cz:5080/wiki/index.php/Spring_JDBC#Transakce No, tam je ale vsetok jdbc kod v jednej metode. Co ak je dana transakcia rozbita na mnoho volani roznych tried? V jdbc dane triedy zdielaju jednu connection, takze mozem v jednej metode spravit insert, v druhej delete, v tretej update a ak to prezije az do stvrtej, tak to commitnut? -- Dusan ... tykajte mi
Adobe formulare - Apache PDFBox
Zdravim, jakou technologii byste doporucili pro praci s PDF formulari (FDF/XFDF)? Nasel jsem Apache PDFBox. Pouziva to nekdo? Je to dostatecne stabilni? LZ -- Lukas Zapletal Please do not respond directly but to the list or use this contact: http://lukas.zapletalovi.com
Re: Neznate kvalitni open-source J2EE eshopy
Anastasiya Sokolova napsal(a): http://www.shopcreator.com/index.html - neni open source - je to navic komercni sluzba Presto diky ;-) -- Lukas Zapletal Please do not respond directly but to the list or use this contact: http://lukas.zapletalovi.com
Re: Hibernate discriminator v OUTER JOIN
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 modelar
http://www.andromda.org/ my melo umet vygenerovat Java i Hibernati mapping z UML. Ale kdyz jsem si s tim v roce 2006 hral, tak to jeste nebylo dokonale. Havne pro slozitejsi projekty narazite na ruzne nedostatky generatoru - nevhodna java, mapovani nebo schema. Takze ja osobne mapovani, schema i Java radeji pisu rucne. (casto schema dela DB expert a nikoliv developer), Lukas 2009/7/28 Ondra Medek xmed...@gmail.com Dobry den, jaky software nebo Eclipse plugin muzete nekdo doporucit pro graficke modelovani JPA/Hibernate? Neco, co by vypadalo podobne jako UML, ale daly by se tam naklikat i ruzne parametry z Hibernate (napr. @Version) a ono by to nakonec vyblilo Java tridy pro Hibernate. Dik -- Ondra Medek
Re: servlet a staticka metoda
Nemusite. Ale pokud ten servlet je ve stejnem aplikacnim serveru, tak muzete mit pri vetsi zatezi problemy s deadlockama na http poolu (pripadne jen s timeoutem na zvetseni poolu). Lukas 2009/7/28 Radovana Straube radovana_stra...@yahoo.com Este som sa chcela opytat: v servlete volam staticku metodu, ktora posiela data inemu servletu (otvaram URL connection). Treba aj toto synchronizovat? Neviem, ci sa da praca s connections zaradit medzi pouzivanie zdielanych zdrojov. Dakujem Radovana Straube --- On Tue, 7/28/09, Josef Cacek josef.ca...@gmail.com wrote: From: Josef Cacek josef.ca...@gmail.com Subject: Re: servlet a staticka metoda To: Java konference@java.cz Date: Tuesday, July 28, 2009, 11:06 AM Ahojte, 2009/7/28 Radovana Straube radovana_stra...@yahoo.com: mam servlet, ktore vola staticku metodu. Moze sa stat, ze pri viacnasobnom paralelnom vyvolani tohto servletu budu data spracuvane v statickej metode inkonzistentne? Jestliže uvnitř oné statické metody používáte pouze lokální proměnné, pak by k nekonzistencím dojít nemělo. Synchronizovat byste měla pouze v případě přístupu k nějakému sdílenému zdroji. S pozdravom Radovana Straube -- pepa cacek
Re: servlet a staticka metoda
Asi jste mne spatne pochopila - bezi servlet, ze ktereho odesilate, i servlet, kam posilate, v jednom serveru? Nebo jsou to dva ruzne servery? Mnou zmineny problem nastane pouze pokud oba bezi v jednom serveru. 2009/7/28 Radovana Straube radovana_stra...@yahoo.com Bohuzial musim posielat v priemere 200-300-krat (obcas aj 3000-krat) data v slucke do toho isteho zdroja (URL) na tom istom aplikacnom servri. Momentalne to robim seriovo a je to dost pomale. Rozmyslala som pouzivat na posielanie thready (vopred stanoveny pocet, aby som cielovy server nezahltila), aby som process urychlila, len neviem ci to pomoze a ci to bude bezpecne... --- On Tue, 7/28/09, Lukas Barton lu...@cnawr.cz wrote: From: Lukas Barton lu...@cnawr.cz Subject: Re: servlet a staticka metoda To: Java konference@java.cz Date: Tuesday, July 28, 2009, 1:00 PM Nemusite. Ale pokud ten servlet je ve stejnem aplikacnim serveru, tak muzete mit pri vetsi zatezi problemy s deadlockama na http poolu (pripadne jen s timeoutem na zvetseni poolu). Lukas 2009/7/28 Radovana Straube radovana_stra...@yahoo.com Este som sa chcela opytat: v servlete volam staticku metodu, ktora posiela data inemu servletu (otvaram URL connection). Treba aj toto synchronizovat? Neviem, ci sa da praca s connections zaradit medzi pouzivanie zdielanych zdrojov. Dakujem Radovana Straube --- On Tue, 7/28/09, Josef Cacek josef.ca...@gmail.com wrote: From: Josef Cacek josef.ca...@gmail.com Subject: Re: servlet a staticka metoda To: Java konference@java.cz Date: Tuesday, July 28, 2009, 11:06 AM Ahojte, 2009/7/28 Radovana Straube radovana_stra...@yahoo.com: mam servlet, ktore vola staticku metodu. Moze sa stat, ze pri viacnasobnom paralelnom vyvolani tohto servletu budu data spracuvane v statickej metode inkonzistentne? Jestliže uvnitř oné statické metody používáte pouze lokální proměnné, pak by k nekonzistencím dojít nemělo. Synchronizovat byste měla pouze v případě přístupu k nějakému sdílenému zdroji. S pozdravom Radovana Straube -- pepa cacek
Re: DAO a stored procedures only pristup
Stejne to popisuje Gavin King. Viz treba http://blog.hibernate.org/Bloggers/TheLieOfSimplicity?showCommentForm=true Nebo http://blog.hibernate.org/2174.lace Co se tyce performance, tak viz napr.: http://www.javaperformancetuning.com/news/interview041.shtm nebo http://www.javafree.org/artigo/871462/ Strucne receno, pri spravne pouziti Hibernate to nebude pomalejsi ;-) Typicke misto, kde zacatecnik muze narazit jsou napr. collections: http://blog.hibernate.org/1395.lace 2009/6/30 Tomas Hubalek tomas.huba...@onsemi.com U nas ve firme byla anketa a v ni byly mj. dve otazky: Jakou technologii byste urcite doporucili ostatnim teamum Jakou technologii byste urcite NEdoporucili ostatnim teamum a obe dve tyto kategorie vyhral Hibernate. To svedci o tom, jak dulezite je Hibernate spravne pouzit. Kdo se ho napr. pokusil napasovat na existujici databazi s prasacky navrzenou DB strukturou, proklina ho. Kdo udelal brutalni databazovou strukturu, kdy ma spoustu entit v sobe vnorenych, aniz by nad tim premyslel, rekne ze to je pomale, apod. Ja osobe mam Hibernate (resp. JPA) velice rad (a mame ho na projektu s vice nez 100 tabulkami), ale strasne zalezi jestli ho pouzijete spravne (s citem). Ono je jednoduce neco naklikat, ale treba si vzdycky uvedomit, co s tim Hibernate udela. Na kolik dotazu to rozbije, jak brutalni ty dotazy pak jsou (milion joinu) apod. Pokud se to naucite a nepokusite se to napasovat na legacy databazi, je Hibernate (IHMO) super volba. Tom -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Ondra Medek Sent: Tuesday, June 30, 2009 1:53 PM To: Java Subject: Re: DAO a stored procedures only pristup Ahoj, zajimavy nazor. Nemam s Hibernate zkusenosti, ale ve firme uvazujeme, ze ji zkusime na novych projektech. Zajimalo by mne, jestli nekdo ma dobre zkusenosti s Hibernate v produkcnim nasazeni s rozsahlejsimi aplikacemi (treba tak 50 tabulek - objektu a vice). Je vykon s Hibernate (a jejimi cachemi) subjektivne nizsi/vyssi/stejny, nez kdyby se pouzivalo klasicke JDBC a clovek mel moznost ladeni na urovni DB? Dik Ondra S tymto sa neda nic ine len suhlasit. Akonahle odflaknete databazovy navrh a pristupove prava na urovni databazy ( co pomocou klik klik hibernate urcite odflaknete ), nezachrani vas uz ziadna dalsia vrstva medzi programom a databazou. Z vlastnej skusenosti - java program naklikany v hibernate, programatorovi to na dedikovanej databaze na testy chodi ok. Projekt sa da na vytazenu produkcnu db a je to cele v prdeli. Moznosti ladenia na urovni db su nulove, medzi programom a databazou je blackbox ktory situaciu dokonale zamlzi. Tot moj nazor. -- Dusan
Re: zamykani tabulek mysql+hibernate
V prvnim pripade musite volat session.get. Session.load udela proxy, ktera se inicializuje az po pristoupeni na jeji property. Session.flush je zbytecne, toto volani synchronizuje stav v pameti se stavem v DB, nikoliv naopak. session.createSQLQuerry(LOCK TABLE mytable WRITE) neudela nic, jen vytvori objekt SqlQuery. Na tomto objektu musite zavolat executeUpdate. Flush je zase zbytecny. Doporucil bych si precist tu dokumentaci celou :-) A javadoc vsech metod na tride Session. Lukas Barton 2009/6/19 Pavel Nemec neme...@gmail.com S Hibernate a vlastne i s Mysql spise zacinam, takze jsem si chtel nejdrive provest nejake testy. jeste bych upresnil, ze mi jde o konkurencni pristup do Mysql db kdy jednotlivy konkurenti nepouzivaji stejny hibernate (tj defakto o pristup primo do mysql); Pouzil jsem dialekt mysql a i mysql innodb. A domnivam se ze by tedy melo byt mozne zamknout bud radek nebo dokonce celou tabulku. Nepovedlo se mi ani jedno. session.load(class, ID, LockMode.Upgrade) session.flush probehlo bez vyjimky. presto jsem byl pak schopen jit do mysql a rucne zmenit, smazat objekt, nebo dokonce zamknout celou tabulku session.createSQLQuerry(LOCK TABLE mytable WRITE); session.flush(); probehla taktez bez vyjimky, nicmene db zamkla nebyla bylo mozne provadet jakekoliv zmeny. Rucni spusteni prikazu LOCK ... v mysql tabulku zamklo a vsechny session pres hibernate se zastavily nez jsem opet tabulku odemkl. (To je chovani, ktereho chci dosahnout) Rikam si ze neco delam spatne, ale nemohu stale prijit co. Dne 16. červen 2009 16:25 Lukas Barton lu...@cnawr.cz napsal(a): Jak presne Hibernate *zamyka *na MySQL najdes v danem dialectu. Jsou tam na to metody. Pricemz pesimisticke zamky (coz je i LockMode.UPGRADE) umi Hibernate jen pokud ho umi databaze (Typicky pres select ... for update). A vetsinou to zamkne jen jeden radek/stranku (zalezi na granuralite na dane DB a dane situaci - eskalace zamku). Zamknout celou tabulku je nutne pomoci SQL prikazu. Optimisticke zamykani umi Hibernate na kazde DB a dela ho automaticky pri kazdem updatu, vynutit je ho mozne pomoci LockMode.FORCE. Vice viz http://docs.jboss.org/hibernate/stable/core/reference/en/html/transactions-optimistic.html Lukas 2009/6/16 Pavel Nemec neme...@gmail.com Dobry den, mam docela specificky problem. 2 aplikacni servery (jboss) na kterych bezi hybernate a mysql. Mysql je nastavna tak ze se replikuje na obou serverech a tvari se tedy jako jedna databaze. S databazi komunikuji vyhradne pres Hibernate. Jsem v situaci, kdy oba servery budou ve stejny cas pracovat nad jednou tabulkou. Hledal jsem moznost jakym zpusobem zamknout celou tabulku, s kterou potrebuji pracovat. Nicmene vse co jsem nasel, je session.get(Object, Lock.UPGRADE). S tim ze je u navodu vetsinou poznamka, ze to funguje urcite na Oraclu. Jestli tomu dobre rozumim, tak hibernate resi konkurencni pristup zejmena pri vicenasobnem pristupu prave pres hibernate (optimisticky pristup s verzovanim). Vypada to ze pristup pres primo pres mysql resit neumi (pesimisticky pristup a zamikani db). Muze mne nekdo prosim spravne nasmerovat? Predem dekuji, Pavel
Re: zamykani tabulek mysql+hibernate
2009/6/19 Pavel Nemec neme...@gmail.com 2009/6/19 Lukas Barton lu...@cnawr.cz V prvnim pripade musite volat session.get. Session.load udela proxy, ktera se inicializuje az po pristoupeni na jeji property. Bohuzel toto nepomaha. Bez ohledu, zda volam .load, nebo .get a zda po tom provedu flush, tak je stale mozne rucne zmenit dany radek databaze - coz je to cemu potrebuji zabranit Session.flush je zbytecne, toto volani synchronizuje stav v pameti se stavem v DB, nikoliv naopak. ano to se skutecne pise v javadocu a vim to. Nicmene jsem zjistil ze .flush mimo jine take zapise aktualni zmeny provedene v ramci transakce do db. Dokonce pokud provedu zmeny zavolam flush a pak rollback, tak tyto zmeny nejsou vraceny. Zmeny vraceny byt musi, flush jen posle prikazy do DB, commit se dela zvlast. Dokonce Hibernate muze posilat prikazy do DB v libovolnem poradi a nektere nemusi poslat vubec. Nejedete v autocommit modu? To by vysvetlovalo i ten problem s nezamykanim pri GETu. Lukas Zacinam cist Java persistance with Hibernate, ktera mi snad da na tyto veci odpovedi. session.createSQLQuerry(LOCK TABLE mytable WRITE) neudela nic, jen vytvori objekt SqlQuery. Na tomto objektu musite zavolat executeUpdate. Flush je zase zbytecny. ja jsem si rikal ze se to musi executnout. Jenze jsem hledal metodu execute :) Dik tohle uz mi funguje. Doporucil bych si precist tu dokumentaci celou :-) A javadoc vsech metod na tride Session. No tak knizka ma 800 stran, takze tohle bude chvili trvat. Kazdopadne dik za pomoc. Pavel
Re: zamykani tabulek mysql+hibernate
A pouzivate vubec transakce? Muzete poslat cely kod? Pokud ne, tak je pozorovane chovani spravne, viz https://www.hibernate.org/403.html Lukas 2009/6/19 Pavel Nemec neme...@gmail.com Zmeny vraceny byt musi, flush jen posle prikazy do DB, commit se dela zvlast. Dokonce Hibernate muze posilat prikazy do DB v libovolnem poradi a nektere nemusi poslat vubec. Nejedete v autocommit modu? To by vysvetlovalo i ten problem s nezamykanim pri GETu. Myslim si ze ano, ale kdyz jsem prohlizel konfiguraci hibernate v J2EE aplikaci, tak jsem zadnou zminku o autocommitu nenasel. Nacpal jsem tedy pres hibernate.propperties autocommit false 14:56:52,266 INFO [Environment] loaded properties from resource hibernate.properties: {hibernate.connection.autocommit=false, hibernate.bytecode.use_reflection_optimizer=false} Nicmene chovani je temer stejne. Smazane objekty, na ktere pote zavolam flush se primo zapisi do db a rollback s nimi nic neudela. Nicmene objekty u kterych provedu zmenu hodnoty po te flush a po te rollback si zachovaji puvodni hodnotu. No, vyresim svuj problem pomoci zamikani tabulek a na tuto zahadu prijdu pozdeji.
Re: zamikani tabulek mysql+hibernate
MyISAM tabulky nejsou transakcni, coz je zdroj vasich problemu. Jinak to zamykani objektu bych resil pres session.lock (kdyz uz tu instanci mate). Nejsem si jisty, ze session.get udela to same na jiz jednou natazenou instanci. Rozhodne je to necitelny zpusob, jak v tomto pripade zamykat. Lukas 2009/6/19 Pavel Nemec neme...@gmail.com Dne 19. červen 2009 16:25 Podlesak Kamil kamil.podle...@ips-ag.net napsal(a): Zdravim, Nejak jsem to v celem vlaknu nenasel, takze se explicitne zeptam: Jsou vsechny ty tabulky InnoDB? Pro jistotu to peclive overte, default je MyISAM! Jsemsi temer jist ze jsou default tj MyISAM. Posilam kod, ktery pouzivam na testovani konkurencniho pristupu Kamil Podlesak Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); List list = session.createQuery(from ServerMessage).list(); ServerMessage sm = (ServerMessage) list.get(0); ServerMessage smLocked = (ServerMessage) session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE); session.flush(); // v tuto chvili zkontroluji db, a provedu zmenu na radce se stejnym id, uspesne session.save(smLocked); session.flush(); sm = (ServerMessage) list.get(1); smLocked = (ServerMessage) session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE); logger.info(smazan objekt: +smLocked.getFlag()); session.delete(smLocked); sm = (ServerMessage) list.get(2); smLocked = (ServerMessage) session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE); logger.info(smazan objekt: +smLocked.getFlag()); session.delete(smLocked); sm = (ServerMessage) list.get(3); smLocked = (ServerMessage) session.get(ServerMessage.class,sm.getId(),LockMode.UPGRADE); logger.info(smazan objekt: +smLocked.getFlag()); session.delete(smLocked); session.flush(); // v tuto chvili vsechny tri objekty jiz nejsou v db ! tx.rollback(); // rollback nevrati zmeny, v db jsou stale zmazany vsechny objekty if(session.isOpen())session.close();
Re: zamykani tabulek mysql+hibernate
Jak presne Hibernate *zamyka *na MySQL najdes v danem dialectu. Jsou tam na to metody. Pricemz pesimisticke zamky (coz je i LockMode.UPGRADE) umi Hibernate jen pokud ho umi databaze (Typicky pres select ... for update). A vetsinou to zamkne jen jeden radek/stranku (zalezi na granuralite na dane DB a dane situaci - eskalace zamku). Zamknout celou tabulku je nutne pomoci SQL prikazu. Optimisticke zamykani umi Hibernate na kazde DB a dela ho automaticky pri kazdem updatu, vynutit je ho mozne pomoci LockMode.FORCE. Vice viz http://docs.jboss.org/hibernate/stable/core/reference/en/html/transactions-optimistic.html Lukas 2009/6/16 Pavel Nemec neme...@gmail.com Dobry den, mam docela specificky problem. 2 aplikacni servery (jboss) na kterych bezi hybernate a mysql. Mysql je nastavna tak ze se replikuje na obou serverech a tvari se tedy jako jedna databaze. S databazi komunikuji vyhradne pres Hibernate. Jsem v situaci, kdy oba servery budou ve stejny cas pracovat nad jednou tabulkou. Hledal jsem moznost jakym zpusobem zamknout celou tabulku, s kterou potrebuji pracovat. Nicmene vse co jsem nasel, je session.get(Object, Lock.UPGRADE). S tim ze je u navodu vetsinou poznamka, ze to funguje urcite na Oraclu. Jestli tomu dobre rozumim, tak hibernate resi konkurencni pristup zejmena pri vicenasobnem pristupu prave pres hibernate (optimisticky pristup s verzovanim). Vypada to ze pristup pres primo pres mysql resit neumi (pesimisticky pristup a zamikani db). Muze mne nekdo prosim spravne nasmerovat? Predem dekuji, Pavel
Netbeans Platform a WebStart
Zdravim, existuji nejake oficialni zdroje jak vytvorit v Netbeans Platform aplikaci a spoustet ji pres Java WebStart? Je to podporovana forma spousteni NB Platform aplikaci? Diky LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: CZJUG Březen - Webové frameworky
Roman Pichlík napsal(a): Zdravim, Březnové setkání Czech Java User Group proběhne 25.3.2009 od 18h v posluchárně K9 v prostorech ČVUT na Karlově náměstí. Tématem tohoto setkání budou webové frameworky a proběhnou dvě prezentace Apache Wicket (Jiří Hradil) a Grails (Václav Pech). Součástí tohoto setkání bude i malé občerstvení v podobě pizzy od firmy JetBrains a soutěž o dvě licence k vývojovému prostředí IntelliJ IDEA. Pokud se chystáte přijít, dejte nám prosím vědět formou hlasování v anketě na hlavní stránce portálu java.cz Abstrakty najdete na strance http://java.cz/detail.do?articleId=20439 Existuje nejaky webovy framefork podobny *Rails ale kde se pise kod v ciste Jave (zadny Groovy a jiny jazyky)? Neco na rychle prototypy webovych aplikaci / mini-projekty. Nechtel bych se ucit novy jazyk, resp. aby se cely tym musel ucit novy jazyk. Nejaka doporuceni? -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: Netbeans Platform a WebStart
Tomas Hubalek napsal(a): No zavolas ant s targetem build-jnlp, ale to asi vis... Bohuzel jsme s tim meli tolik problemu, ze jsme nakonec museli udelat vlastni stupidni webstart, ktery (pokud je novy zip na serveru) stahne zip ze serveru, rozbali a spusti. Zakaznici si na web start spousteni stale stezovali. Problemy byly nasledujici: - kazdy jar se stahoval nekolikrat (chyba nekde v classloaderu v samotnem web startu), coz zpusovalo velice pomale spousteni aplikace, pokud jsem ji spoustel napr. z Malaysie nebo USA pres firemni sit. I v misti siti to bylo pomalejsi, byt ne tak dramaticky. - master.jnlp se obcas neaktualizoval na klientovi(i kdyz byl na serveru novy, tak se vzal ten starsi) a jak maji netbeans tech jnlp nagenerovanych spoustu, doslo k nekonzistencim a uzivatele hlasili zase vam to nefunguje. Tohle mozna byla chyba prohlizece nebo opet webstartu - nekdy pri prvnim spusteni nove verze aplikace zamrzla pri nabehu a uz se nevzchopila, pri druhem uz to bylo OK. Pricinu jsme nenasli. No moc povzbuzujici to neni, presto diky. A ja v nejake prezentaci RCP vs NBP videl, ze WebStart s NBP lze pouzit out-of-box, ale u RCP se to musi silene ohybat (delal jsem to, bylo to peklo). Nejak to tedy uchodit jde. ;-) -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: CZJUG Březen - Webové frameworky
Existuje Trails http://trailsframework.org/ A taky se dají přímo Rails spustit v JRuby :-) :-) Navic jsem se tak dival na netu a vypada to, ze JRuby je stejne pomale jako Ruby - tj. neni to zadna slava. http://shootout.alioth.debian.org/u32/benchmark.php?test=alllang=javalang2=jrubybox=1 -- Lukáš Zapletal http://lukas.zapletalovi.com
Failover pres JDBC na Oracle SE
Zdravim konferenci, zajimalo by me, jestli JDBC ovladac pro Oracle (a pokud ano tak ktery) umi fail over na STANDARD EDITION databazi, ktera je replikovana pres redo logy na standby backup instanci. Tzn. jestli lze do URL napsat neco jako server1;server2 a v pripade ze se server2 stane master (administrator to prehodi), tak se JDBC automaticky prepne na novy server. Samozrejme s nejakym tim vypadkem (stavajici connections spadnou a provede se reconnect), neocekavam od toho, ze by to fungovalo jako RAC. Jde mi o levne reseni postavene na standard edicich. Jestli to zkratka lze nejak pomoci JDBC vyresit, nebo to je treba resit v aplikaci. Diky za rady -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: CZJUG Březen - Webové frameworky
Jiří Hradil napsal(a): Počkejte si na prezentaci Wicketu :). Taky mě neba furt studovat nové syntaxe, Wicket je zatím čisté Javě docela blízko... Ano Wicket a Stripes se mi libi v posledni dobe nejvic :-D Ale chtel bych neco kde je automatizovane vyrabeni CRUD prototypu (nebo jak jinak to nazvat). Proste: vygeneruj mi model, SQL skript, kontrollery, views - poupravit to - hotovo. LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: SWT - prekreslovani tabulek a layouty
Pavel Kysilka napsal(a): zdravim, pisi jednu desktopovou aplikaci-editor na SWT v Eclipse. Nastal mi tu vcelku velky problem s prekreslovanim dat v tabulkach. Struktura dulezitych grafickych prvku vypada takto: Composite - CTabFolder -CTabItem - Composite -ScrolledComposite -Composite [GridLayout] -Table -TableItem |_TableEditor(Combo,Button,Text,...) Aplikace funguje tak, ze se naplni tabulka a v ni se nasetuji editory v bunkach na radcich hodnotami podle potreby. Dale jiz muze uzivatel radit podle potreb. Uzivatel muze take pridavat nove radky. Problem je nasledujici: - naplneni tabulky je v poradku. ScrolledComposite mi vyhodi v pripade velke tabulky posuvnik. -Pridam -li bunku tabulky, tak se nove vytvoreny radek neprekresli dobre. Samotne Table.update() a Table.redraw() nestaci. Prekresleni noveho radku-TableItem lze zaridit pres Table.pack(). To ale zpusobi, ze se tabulka zmensi a zmizi mi posuvniky, ze ScrolledComposite. Sorry za outdated OT, ale prochazim stare prispevky a neda mi to: Proc nepouzijete JFace a MVC pristup? Nemusi se pak resit zadne takovehle veci a napriklad prekreslovani je automaticke. Pracuje se pak s daty (s modelem) nikoliv primo s komponentou Table a TableItem atd... LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: Ako na automaticke testy - server side?
Tomas Hubalek napsal(a): Jednoznacne Hudson. Super vec, uz si bez ni nedokazu predstavit teamovy vyvoj... Vyznacuje se zejmena jednoduchosti ovladani a privetivym UI (AJAX). TeamCity vypada take vyborne - ma vynikajici integraci s IDE (i jinymi - napriklad MS). I Apache Continuum je vyborny produkt orientovany zejmena na Apache infrastrukturu (Maven). A existuji dalsi... LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: OT: JPA - mapování číselníků
Sam Gavin King v mnoha rozhovorech rikal, ze spravne pouzity Hibernate bude az na umele pripady rychlejsi nez ciste JDBC. (viz napr. http://www.javaperformancetuning.com/news/interview041.shtml) Bohuzel se najde dost pripadu, kdy bude spravne pouziti Hibernate velmi slozite (napr. batchove operace). Lukas 2009/3/11 Richard Malaschitz malaschitz.c...@gmail.com pretoze mam (opravnene*) pochybnosti o performance takehoto riesenia. Tie su uplne na mieste... urovni sql elegantne riesit pomocou sql join-u. Hrozne by ma zaujimalo, ake sql prikazy vygeneruje hibernate pri dotaze na zaznam z tabulky computers. Ci pouzije join, alebo bude len trapne selectovat z dvoch tabuliek. Pavle, nemohol by ste mi sem potom nejake sql dotazy z Defaultne chovanie Hibernate je, ze pouzije JOIN. Toto chovanie sa da ale v Hibernate modifikovat, pretoze v pripade rozsiahlych databazovych schem byvaju SQL dotazy a nasledne parsovanie objektov prilis pomale (a vsetci nadavaju na pomaly Hibernate). A ani potom nevyuziva cache objektov.
Re: WCMS
Jako popularizator Drupalu jeste musim preci jenom: Najdolezitejsie faktory: * implementacia v Jave a JSP o technologie s ktorymi sme verne zzity - rozumieme im o vieme si to v pripade potreby upravit, doprogramovat nieco vlastneho * staticky export Drupal je v PHP. * podpora jazykovych mutacii Drupal ma kompletni (100%) lokalizaci zakladnich (default) modulu, velike mnozstvi pridavnych modulu je take prolozeno. * OSS GNU GPL - vsechny moduly tedy musi byt take GNU GPL - obchodne to nemusi byt zadny problem (GNU GPL neznamena ze moduly musite davat zdarma, jen nemuzete zakaznikovi naridit, aby to nemohl udelat) * system spravy pouzivatelov a ich prav Role, uzivatele, prava. Moznost rozsireni a dalsi integrace. * web rozhranie Ma to web roznrani vcetne moznosti web services / rest. * WYSIWYG editor Existuje nekolik pluginu. * zoznam referencii Na strankach Drupalu. Treba Warner Bros :-) * plna kontrola nad generovanym HTML ??? Zapomnel jste jednu dulezitou vec - kvalita dokumentace a podpora komunity. A take podpora rozsirovani. Kvalita dokumentace U Drupalu je vynikajici, rekl bych jedna z nejkvalitnejsich dokumentaci CMS systemu psaneho v PHP vubec. Na trhu je pres pet knih, z toho je jedna v cestine. Podpora ze strany komunity Vynikajici, rozsahle stranky poskytuji krome diskuznich for a jinych standardnich zalezitosti take projektove stranky pluginu. U nas je velika komunita kolem Drupalu. Moznost rozsirovani Drupal samotny je neuveritelne flexibilni - ke svemu behu potrebuje pouze 4 moduly, vse ostatni je nepovinne/nahraditelne. Cela koncepce (hooks) dava smysl a i kdyz neni napsany objektove, je napsan dobre a rozsiritelne. LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: TIBCO General Interface
Rad bych se zeptal, zda v posledni dobe nekdo z Vas pouzival na vyvoj front-endu webovych aplikaci open-source framework TIBCO General Interface (TIBCO GI). Jake s nim mate Vy zkusenosti? Pouzili byste jej znovu na stredne velky az velky projekt intranetove/extranetove aplikace? Pouzili jsme jej na projektu u zakaznika, ktery pouziva TIBCO pro integraci i orchestraci. Velikou vyhodou byla velika provazanost s touto platformou, a take pomerne dobra flexibilita. Jednalo se o vetsi projekt portaloveho typu (korporatni interni pouziti) - jinak receno (v integracni a orchestracni hantyrce) interface pro human stepy. Na to je GI primo udelane. Kolegove byli schopni dokonce nad GIckem vytvaret dynamicke formulare, jejich popis natahovali z textovych definic (je to trosku nestrandardni pristup). Bohuzel vice detailu nevim - tohoto projektu jsem se neucastnil. -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: WCMS
aky WCMS (Web content management system) by ste odporucili pre nasadenie malych inter/intranetovych webov. Najdolezitejsie aspekty su: * doraz na jednoduchost pre koncoveho pouzivatela (spravcu obsahu) * WYSIWYG * moznost co najvacsej kontroly nad sablonami / vyslednym html Co sa tyka Javy tak som zatial nasiel OpenCMS. V PHP potom Joomla, Typo3. Pripadne mi viete poradit nejaky iny sposob ako spravovat web stranky (nie wiki)? Dakujem. Jednoznacne Drupal. Neni v Jave, ale umi toho opravdu _hodne_ a jeho interni design je pomerne kvalitni (Drupal je hodne flexibilni pri zachovani stability a pouzitelnosti). Kratka prezentace v cestine: http://lukas.zapletalovi.com/blog:prezentace_drupal_6.6 -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: dwr get xml, img
Marek napsal(a): Ahoj, ano presne to potrebujem response.setContentType(text/xml); ale pozrel som si aj tie konvertory no neviem stale kde zmenit ten content type na text/xml. A proc to potrebujete mit v headeru? Je preci jedno, co je v headeru, kdyz to konvertor spravne prevede. Navic XML muzete predavat pres ten String. Ted vidim, ze dotaz ma dve casti. Zodpovedel jsem (doufam) tu prvni. U te druhe (nastavovani content typu) bohuzel nevim. Ja osobne bych si napsal vlastni servlet, paklize bych potreboval vracet nejaky jiny MIME typ. Tohle jsem ale pouzil vzdy jen u obrazku a octet-streamu (v pripade ze jsem chtel stahovat binarni data tak, aby prohlizec otevrel dialog SAVE AS). LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: dwr get xml, img
Marek napsal(a): Ahojte Ako mozem z dwr servletu vracat xml, lebo vracia to len text ? potom na klientovy si uz vyparsujem potrebne data z elementov. A taktiez ak by som chcel vracat iny content type z dwr servletu napr. img , je to mozne ? Vopred vdaka za reakciu DWR je prece normalni Servlet. A normalni Servlet muze vracet cokoli - staci jen spravne nastavit headery v odpovedi (zejm. content-type, content-length). Projekt DWR, ktery sponzoruje firma TIBCO, umoznuje pri asynchronnim volani vracet jakykoli obsah - vcetne binarniho. Mrknete na http://directwebremoting.org/dwr/server/dwrxml/converters LZ -- Lukáš Zapletal http://lukas.zapletalovi.com
Re: Ako prepojit dve webaplikacie?
Pouzit JBoss a EAR, ve kterem budou dva WARy. Spolecne tridy date do lib adresare v EARu. Lukas 2009/2/11 Robert Novotny robert.novo...@upjs.sk Dobry den, riesime s kolegami nasledujuci architekturno-technologicky problem a nedari sa nam prist na zmysluplne riesenie. Mame informacny system ktory ma byt rozsireny o vrstvu webovych sluzieb. V nej maju byt zverejnene dolezite funkcie informacneho systemu, ku ktorym budu pristupovat klienti. IS je rieseny ako (jedna) webova aplikacia nasadena na Tomcate, webove sluzby riesime cez Spring-WS. Nasim cielom je mat WS vrstvu co najviac nezavislu od zvysku projektu. Jednak kvoli vyvojarom web. sluzieb a jednak kvoli tomu, aby bolo mozne nasadzovat, spustat a zastavovat WS nezavisle od zvysku systemu. Napad 1: [tazkotonazny] * Jeden Eclipse projekt, dodat do webovej aplikacie springovsky servlet, nasadit ho a pouzivat. Vsetko bude na kope. Napad 2: * Dva projekty (1 existujuci pre jadro, druhy pre WS, WS zavisi na jadre). Do webovej aplikacie sa doda springovsky servlet a vrstva s WS sa zabali do JARu, ktory sa deployne do webovej aplikacie. Napad 3: * Dva projekty (1 existujuci pre jadro, druhy pre WS, WS zavisi na jadre). Dve webove aplikacie (jedna cisto pre WS, druha pre jadro). To znamena, ze potrebujeme mat triedy jadra nasadene dvakrat, co sposobi problem so synchronizaciou balickov, tried a pod. Napad 4: * Dva projekty (1 existujuci pre jadro, druhy pre WS, WS zavisi na jadre). Dve webove aplikacie (jedna cisto pre WS, druha pre jadro). WS webaplikacia nejakym zazracnym sposobom vidi triedy z webaplikacie jadra. Pozeral som sa na principy classloaderov v Tomcate, ale jediny sposob by bol nasadit triedy do SYSTEM classloadera Tomcatu, co znamena publikovanie JARov jadra do $TOMCAT/lib, co nie je ktovieco. Nemate niekto skusenosti s komunikaciou dvoch web aplikacii alebo nejaku radu, ktory napad je lepsi? Vdaka. Robert Novotny
Re: Kompatibilita
Cross verze Javy funguje napr. Hessian. A bude fungovat i CORBA. Bohuzel Hessian vyzaduje 1.3 Javu. Mozna najdete 1.1 CORBA klienta. Lukas 2009/1/8 Martin Kuba ma...@ics.muni.cz No, moje dávné zkušenosti říkají, že serializace a potažmo RMI funguje spolehlivě pouze mezi stejnými verzemi JVM. Dost se divím, že funguje ten 1.1 klient vůči 1.4 serveru, protože v 1.3 se změnilo RMI na RMI-IIOP. Každopádně ve verzi 1.4 se v JRE objevily nové třídy java.beans.XMLDecoder java.beans.XMLEncoder a aspoň já z jejich popisu v javadocu cítím přiznání, že serializace moc nefunguje a proto museli přidat tyhle třídy pro zápis v XML, který je mnohem přenositelnější. Makub Jan Medek napsal(a): Dobry den, mame projekt. Serverova cast je v tuto chvili v J2SDK 1.4.2, client v velice historickych duvodu JDK 1.1.4 (naprosto pochopim zdeseni, ale tak to proste je). Komunikace pres RMI. A mam ted problem. Potrebuji prejit na serverove strane nejlepe na JDK 1.6 (minimalne JDK 1.5). Zrejme je tam nejaky problem v serializaci a deserializaci uz zakladniho java.lang.Object. Nebo pri prvnim volani jakekoliv metody pres RMI mi to vyhodi chybu. Mam podezreni, ze to je v souvislosti s generickymi typy, neb jsme to nasel ve zdrojaku prave java.lang.Object. Nemate nekdo tip, jestli se to da obejit, nebo pripadne nejaky odkaz, kde je dana nekompatibilita popsana? Predesilam,z e prechod na jinou verzi Javy na strane klienta neni mozna. Nepisu radsi proc, protoze byste me ukamenovali. :-) Zkousel jsem google, ale nejak v tomto pripade nejsem uspesny. Diky za pomoc. Honza -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: ma...@ics.muni.cz Masaryk University http://www.ics.muni.cz/~makub/http://www.ics.muni.cz/%7Emakub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 --
knizky
Dobry den, Muzete mi doporucit nejakou dobre knihy o TDD a J2ee ? Pro me idealni kniha by nemela byt spatne citelna a mela by byt spise vycerpavajici nez strucna. Diky Lukas Nalezenec Software Engineer Acision. Innovation. Assured. www.acision.comhttp://www.acision.com/ Na Okraji 335/42, 162 00 Praha 6 Czech Republic E: [EMAIL PROTECTED] This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Re: Hibernate Criteria API
Mate pravdu, mel jsem tam pridat != na id. from Person person where not exists(from Person diff where diff.name= person.name and not(person.id=diff.id)) On Fri, Nov 7, 2008 at 7:48 PM, Vaclav Stumbauer [EMAIL PROTECTED] wrote: Neni vysledkem tohodle dotazu vzdy prazdna mnozina - neotoci se to samo na sebe? :-) Pozadavek je pozezrely, opravdu to chcete, nejde vam jen o seznam distinct hodnot te dane property? :-) Ty co se v dane vlastnosti shoduji jsou ekvivalentni? - je jedno ktery zaznam z dane skupiny to vrati? s ciselnym ideckem by to mohlo jit takle: from Person person where person.personId in ( select min(per2.personId) from Person per2 group by per2.{property} ) criteria nepouzivam - nevim. VS On Fri, Nov 7, 2008 at 3:50 PM, Lukas Barton [EMAIL PROTECTED] wrote: from Person person where not exists(from Person diff where diff.name=person.name) On Fri, Nov 7, 2008 at 3:33 PM, radovan deka [EMAIL PROTECTED] wrote: Zdravim java komunitu, chtel bych se zeptat, zda lze pomoci Hibernate Criteria API pripadne HQL (radeji bych pres Criteria API, pac potrebuju strankovat a strankovani pres HQL sem jeste nedelal) ziskal seznam entit, s tim ze v tomto seznamu nebudou dve entity, ktere maji stejny nektery atribut. Kontretne napriklad seznam lidi (trid Person) ve kterym nebudou dva Honzove (Person.name) - seznam bude obsahovat unikatni entity podle nektere property.
Re: Hibernate Criteria API
Tak jsem si konecne poradne precetl zadani. V mem druhem pokusu staci != nahradit za not ;-) from Person person where not exists(from Person diff where diff.name= person.name and not(person.iddiff.id)) 2008/11/8 Vaclav Stumbauer [EMAIL PROTECTED] On Sat, Nov 8, 2008 at 3:47 PM, Lukas Barton [EMAIL PROTECTED] wrote: Mate pravdu, mel jsem tam pridat != na id. from Person person where not exists(from Person diff where diff.name=person.name and not(person.id=diff.id)) To je o fous lepsi, ale nevrati ani jenoho Honzu ze dvou Honzu. Resp vsechny nasobnosti v dane vlastnosti to vymiti uplne. Jak by k tomu Honzove prisli :-) VS
Re: Hibernate Criteria API
from Person person where not exists(from Person diff where diff.name= person.name) On Fri, Nov 7, 2008 at 3:33 PM, radovan deka [EMAIL PROTECTED] wrote: Zdravim java komunitu, chtel bych se zeptat, zda lze pomoci Hibernate Criteria API pripadne HQL (radeji bych pres Criteria API, pac potrebuju strankovat a strankovani pres HQL sem jeste nedelal) ziskal seznam entit, s tim ze v tomto seznamu nebudou dve entity, ktere maji stejny nektery atribut. Kontretne napriklad seznam lidi (trid Person) ve kterym nebudou dva Honzove (Person.name) - seznam bude obsahovat unikatni entity podle nektere property.
RE: Dynamicke WSDL
Dobry den, Dekuji za reakci. Pozadavkem je ovlivnovat interface z konfiguracnich souboru. Konfigurace bude dost staticka, rozhodne se nebude menit klientum pod rukama. Kvuli metodikam a detailum pozadavku nelze pouzit generovany java kod. Predstavte si napriklad aplikaci, ktera ma verzi LITE, PRO, ENTERPRISE a v kazde verzi poskytuje jine operace. Jedno ze specific zadani je, ze verzi aplikace nelze rozlisit v dobe buildu. S pozdravem Lukas Nalezenec -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martin Kuba Sent: Thursday, October 30, 2008 9:14 AM To: Java Subject: Re: Dynamicke WSDL Nalezenec, Lukas - Acision napsal(a): Dobry den, Pro svoji webservice bych potreboval dynamicky modifikovat WSDL ktery vystavuje (implementacni trida zustava stejna). Mohu se zeptat na důvod takového požadavku ? WSDL popisuje rozhraní, a rozhraní by měla být neměnná, protože představují kontrakt mezi klientem a serverem. Makub -- ~~ Supercomputing Center Brno Martin Kuba Institute of Computer Scienceemail: [EMAIL PROTECTED] Masaryk University http://www.ics.muni.cz/~makub/ Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775 -- This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Dynamicke WSDL
Dobry den, Pro svoji webservice bych potreboval dynamicky modifikovat WSDL ktery vystavuje (implementacni trida zustava stejna). Ocenil bych jakoukoliv radu ktera by me nakopla spravnym smerem. 1. SPI - service provider interface. - Melo by jit zachytit volani pozadavku bud na vytvoreni WS nebo na ziskani WSDL. Takovy pristup je nejspis specificky pro kazdy container. 2. Modifikace metadat - Podle specifikace maji byt pri generovani WSDL zohledneny metadata poskytovane EndPointem 3. Posledni pristup je pres prostredky kterymi se nevystavuji POJO ale EJB, o descriptor webservices.xml Tuhle cestu jsem jeste uplne neprozkoumal. platforma: JBOSS, j2ee5, WS implementovana jako POJO s anotacemi (slo by zmenit na EJB). dekuji Lukas Nalezenec Software Engineer Acision. Innovation. Assured. www.acision.comhttp://www.acision.com/ Na Okraji 335/42, 162 00 Praha 6 Czech Republic E: [EMAIL PROTECTED] This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
Re: WebService vs. vlastny format
Staci chvili hledat: Credit Suisse - CORBA - delali SOA jeste driv, nez se zacali pouzivat Web Services *Carphone Warehouse - JMS Urcite najdete nejake dalsi, napr. s MQ, EJB, POX, ATOM-based REST... Lukas * 2008/10/6 Lukáš Zapletal [EMAIL PROTECTED] Z pozice systemoveho integratora mohu napsat jen to, abyste si zvolil takovy format pro vymenu dat, se kterym bude pracovat co mozna nejvic dodavatelu. Ve chvili, kdy si firma zahrava napriklad se SOA je jedina prakticka volba - Web Services. Zatim jsem se totiz nesetkal s implementaci SOA postavenou na jine technologii pro vymenu zprav (co se tyka konektivity ke koncovym systemum - interne je to vec jina). -- Lukas Zapletal http://lukas.zapletalovi.com
Re: WebService vs. vlastny format
Proc porad lidi nechapu, ze SOAP je protokol a REST je architektocnicky pristup. Muzete mit REST architekturu a pouzivat SOAP. Naopak muzete mit ATOM nebo JSON protokol a nemit REST. Lukas 2008/10/3 Tomas Hubalek [EMAIL PROTECTED] Uprimne receno nevim, co mate na mysli web service. Jestli SOAP nebo REST... V pripade obou pristupu k WS mi ale nevyhody nize popsane neprijdou pravdive. Myslim ze v Jave (s pouzitim JAX-WS 2.0 a NetBeans 6.x) jsou oba typu webovych velice jednoduche. V pripade RESTu mi ani neprijde, ze by se prenasel nejaky extra balast, obvzlaste pri pouziti serializace do JSONu bych rekl ze to je hodne usporne. Podle me je vyvijeni jakehokoliv vlastniho formatu v tomto pripade nevyhodne, protoze standard dostacuje vic nez dostatecne. Tom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Radovana Straube Sent: Friday, October 03, 2008 11:58 AM To: konference@java.cz Subject: WebService vs. vlastny format Dobry den, dostali sme ako zadanie zopar stredne velkych projektov, v ktorych musime spracovavat data z externych aplikacii napisanych vo Visual FoxPro a v SAP-e. Nevieme sa rozhodnut, ci pouzit WebService alebo si napisat vlastny format pre vymenu dat. V diskusii s kolegami padli nasledovne pre a proti: WebService: + je standard - kazdy ho pozna - je v Jave tazkopadny na vyvoj a hladanie chyb - pri komunikacii sa prenasa prilis vela balastu Vlastny format: - treba ho riadne zdokumentovat a nechat odsuhlasit aj partnerskou firmou + pri komunikacii sa prenasaju iba potrebne data Budem vdacna za Vase prispevky k tejto teme. Dakujem Radovana Straube
Re: File.length() a InputStream.available()
available() vraci neco jineho nez length(), viz javadoc: available(): Returns the number of bytes that can be read (or skipped over) from this input stream without blocking by the next caller of a method for this input stream. The next caller might be the same thread or or another thread. length(): Returns the length of the file denoted by this abstract pathname. The return value is unspecified if this pathname denotes a directory. Lukas On Tue, Sep 16, 2008 at 10:21 AM, Lukáš Zapletal [EMAIL PROTECTED]wrote: Zdravim konferenci, metoda length() tridy File vraci long, ale metoda available() tridy InputStream int. Je zde jisty typovy rozpor. Chtel jsem kouknout, jak je implementovana metoda available() tridy FileInputStream, ale je to nativni metoda. Nevi nekdo, jak se Java od Sunu chova pri cteni velikeho souboru, ktery presahne rozsah typu int? Co vraci metoda available tridy FileInputStream? LZ -- Lukas Zapletal http://lukas.zapletalovi.com
Re: Hibernate funkcia JOIN
Ahoj, select* new cz.java.ItemStatBean(*item.createDate, size(item.bids), (select max(bid.bidPrice) from item.bids bid)*)* from Item ... Lukas Ivan Polák napsal(a): dakujem za rady, da sa povedat ze vsetky som pouzil :-) vysledok: getHibernateTemplate().find(select item.createDate, size(item.bids), + (select max(bid.bidPrice) from item.bids bid) + from Item item where item.owner = ? group by item.id, item.createDate, owner); teda ako radil Lukas spravil som manapovanu kolekciu bids v item. mam ale doplnujucu otazku, ako potom takyto vysledok namapovavate na bean, ako sa by sa spravne mal namapovat vysledok kde sa vracia napr. max, min, avg a podobne. vsetkym dakujem! Ivan Lukas Barton wrote / napísal(a): Napr.: select max(bid.bidPrice),count(bid.id) from Bid bid group by bid.item.id Zajimavejsi zapis bude, kdyz ma Item mapovanou kolekci bids (ale neznam vase UC, tak nevim, zda je to rozumne): a) select max(bid.bidPrice), count(bid.id) from Item item join item.bids bid group by item.id b) select sizeof(item.bids), (select max(bid.bidPrice) from item.bids bid) from Item item Dalsi moznosti vymyslet podle http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html sam. Lukas Ivan Polák napsal(a): Zdravim konferenciu, mozete mi pomoct prepisat tento select do hibernate query: select max(b.bid_price), count(*) from item f join bid b on b.fk_item_id = f.id where f.id = 10 group by f.id triedy su Item a Bid, Item ma : id a Bid ma id, bidPrice a itemId (pre fk_item_id). dakujem Ivan
Re: Hibernate funkcia JOIN
IMHO Hibernate takto neumi pracovat s kolekcema, musel by tam dat nejakou proxy na kolekci a nebylo by napr. snadno definovatelne, jak se ma inicializovat apod. Ono to ani nema velky smysl, lepsi je vratit rovnou objekt Item. Lukas Ivan Polák napsal(a): dakujem, to je ono, new MyResultBean(...) a k tomu prislusny konstruktor. ale neviem preco mi tam funguju len jednoduche typy, ako napr. Integer, Date. napr. konstruktor: MyResultBean(Integer i1, Date d1) a pouzijem: select new com.aplikacia.model.MyResultBean(item.c, item.createDate) je vsetko OK, ale ak pouzijem MyResultBean(Integer i1, Date d1, ListBid bids) a select new com.aplikacia.model.MyResultBean(item.c, item.createDate, item.bids) vypisuje Unable to locate appropriate constructor on class [com.aplikacia.model.MyResultBean] napriek tomu ze dany konstruktor mam. Ivan Lukas Barton wrote / napísal(a): Ahoj, select* new cz.java.ItemStatBean(*item.createDate, size(item.bids), (select max(bid.bidPrice) from item.bids bid)*)* from Item ... Lukas Ivan Polák napsal(a): dakujem za rady, da sa povedat ze vsetky som pouzil :-) vysledok: getHibernateTemplate().find(select item.createDate, size(item.bids), + (select max(bid.bidPrice) from item.bids bid) + from Item item where item.owner = ? group by item.id, item.createDate, owner); teda ako radil Lukas spravil som manapovanu kolekciu bids v item. mam ale doplnujucu otazku, ako potom takyto vysledok namapovavate na bean, ako sa by sa spravne mal namapovat vysledok kde sa vracia napr. max, min, avg a podobne. vsetkym dakujem! Ivan Lukas Barton wrote / napísal(a): Napr.: select max(bid.bidPrice),count(bid.id) from Bid bid group by bid.item.id Zajimavejsi zapis bude, kdyz ma Item mapovanou kolekci bids (ale neznam vase UC, tak nevim, zda je to rozumne): a) select max(bid.bidPrice), count(bid.id) from Item item join item.bids bid group by item.id b) select sizeof(item.bids), (select max(bid.bidPrice) from item.bids bid) from Item item Dalsi moznosti vymyslet podle http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html sam. Lukas Ivan Polák napsal(a): Zdravim konferenciu, mozete mi pomoct prepisat tento select do hibernate query: select max(b.bid_price), count(*) from item f join bid b on b.fk_item_id = f.id where f.id = 10 group by f.id triedy su Item a Bid, Item ma : id a Bid ma id, bidPrice a itemId (pre fk_item_id). dakujem Ivan
Re: Hibernate funkcia JOIN
Napr.: select max(bid.bidPrice),count(bid.id) from Bid bid group by bid.item.id Zajimavejsi zapis bude, kdyz ma Item mapovanou kolekci bids (ale neznam vase UC, tak nevim, zda je to rozumne): a) select max(bid.bidPrice), count(bid.id) from Item item join item.bids bid group by item.id b) select sizeof(item.bids), (select max(bid.bidPrice) from item.bids bid) from Item item Dalsi moznosti vymyslet podle http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html sam. Lukas Ivan Polák napsal(a): Zdravim konferenciu, mozete mi pomoct prepisat tento select do hibernate query: select max(b.bid_price), count(*) from item f join bid b on b.fk_item_id = f.id where f.id = 10 group by f.id triedy su Item a Bid, Item ma : id a Bid ma id, bidPrice a itemId (pre fk_item_id). dakujem Ivan
Re: EJB a transakcie
IMHO vam jde o nastaveni lock timeoutu mezi transakcema na 0 sekund (tj. zadne cekani na ziskani write/read zamku). Pokud vim, tak napr. Informix takove nastaveni umoznuje jak na urovni cele databaze, tak jednotliveho spojeni. Jak jsou na tom dalsi databaze je nutne zjistit z jejich dokumentace, JDBC nic takoveho nenabizi. Duvod je asi ten, ze to kazda databaze ma jinak a nektere to nemusi mit vubec. Lukas PS: Co si pamatuji, tak v Delphi toto nastaveni bylo specifikum Interbase. On Thu, Aug 28, 2008 at 12:49 PM, Frantisek Koncár [EMAIL PROTECTED] wrote: pouzivam READ_COMMITED izolacnu uroven a ziadny select .. for update nepouzivam - Original Message - From: Roman Pichlík [EMAIL PROTECTED] To: Java konference@java.cz Sent: Wednesday, August 27, 2008 6:43 PM Subject: Re: EJB a transakcie Da sa nejakym sposobom ovplyvnit chovanie transakcie resp. transakcneho managera tj ak sa mu nepodari zamkut zaznam pre editaciu nech na to necaka a hodi vynimku? (napr. v Delphi na to existuje parameter transakcie NOWAIT) Resp. ako sa riesi takato situacia? myslim si ze neda. Otazky: Jakou uroven izolace pouzivate? Delate nekde pesimisticky zamek v kodu viz select for update napr. skrze Hibernate? -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */ -- Dovolena do nejoblibenejsich mist za super ceny - www.myway.cz
Re: EntityManager flushMode
Ahoj, problem je, ze pouzivate v UI primo managed entitu a pri commitu transakce dojde k ulozeni stavu z objektu do databaze (flush). Reseni jsou dve: a) neposilat managed entitu az do UI v pripade modifikujicich operaci - pouzijte specialni DTO b) detachnete danou entitu od EntityManageru - tj. nepouzivejte session in view navrhovy vzor (v pripade primeho pouziti Hibernate je mozne zavolat session.evict()) (nedoporucuji volat clear() na EM, protoze to muze udelat pekny zmatek v jinych castech aplikace...) Lukas BTW: volani metody merge() (coz je IMHO kod uvnitr vasi metody save()) na managed entitu nema valny smysl. tomas napsal(a): Dobrý den mám následující problém, který se vyskytne při validaci formulářů ve webové aplikací, která používá Spring, Struts2, Jpa(Hibernate). Mám DAO třídu (service), která používá EntityManagera a transakce (@Transactional). Abych mohl načítat asociované objety ve view vrstvě, mám ve web.xml registrovaný filtr OpenEntityManagerInViewFilter. 1. Vyplním formulář a odešlu na StrutsAction.java //pole ve formuláři input type=hidden name=article.id value=2 / input name=article.title / 2. Ve tříde StrutsAction se mi podle article.id natáhne z db entita a přes set metodu se do ní vloží titulek (Article.title) //načtení entity z db //a asi start transakce if (article != null article.getId() != null) article = service.find(article.getId()); 3. Spustí se validační interceptor, který kontroluje délku stringu titulku (schválně jsem ho zadal delší než je povolené) a protože titulek je delší vrací mě na formulář. Metoda save která obsahuje service.save(article); se nespustí což je v pořádku. @ValidujDelku public String save() throws Exception{ service.save(article); return SUCCESS; } Problém(aneb co si myslím, že se děje): 4. Před tím než OpenEntityManagerInViewFilter uzavře transakci zavolá metodu flush a synchronizuje objekt Article načtený ve StrutsAction s DB. (Objekt Article obsahuje pole title s přesahující délkou pole) 5. Hibernate mi vyhodí vyjímku BatchUpdateException: Data truncation: Data too long for column 'title' at row 1 Problém tedy vidím v automatické synchronizaci objektu Article. ??? FlushModeType.AUTO Stále se v tom hrabu a nemůžu přijít na to kde, co a jak změnit. Děkuju za radu. Tomáš
Re: i18n v databázi
Pouzijte NamingStrategy - http://www.hibernate.org/hib_docs/v3/api/org/hibernate/cfg/NamingStrategy.html Locale tam dopravite napr. pres ThreadLocal promenou. Bohuzel toto reseni bude fungovat jen pro cteni. Pro zapis bude stejne lepsi, mit tam namapovane vsechno - pouzit jinou entitu. Lukas [EMAIL PROTECTED] napsal(a): Dobrý den Potřebuji vytvořit výcejazyčnou verzy webové aplikace. Aplikace prezentuje kalalog knih. Podle zjištěných Locale by měla nabídnout jazykovou verzy s informacemi o knize. Informace o knihách jsou uloženy v DB. Entita knihy je normální POJO objekt. Vlastně všechny informace (titulek, popisek, žánr...) kromě roku vydání se budou překládat. Než do třídy přidávat další pole: private String CZ_title; private String DE_title; private String US_title; ... a pak je na základě prefixu Locale ve view vrstvě číst, nebylo by lepší vytvořit úplně nové tabulky: CZ_book DE_book US_book a podle Locale nějak přinutit aplikaci aby četla z tabulky podle Locale? Přijde mi to jako přehlednější řešení, než mít v jediné tabulce desítky duplicitních polí lišících se pouze prefixem. Myslel jsem, jestli třeba Hibernate něco takového nenabízí, ale nic kloudného jsem nenašel. Ještě jsem zapomněl dodat, že aplikace používá Spring, Struts, JPA(Hibernate). Děkuji za radu Tomáš
Re: Navrh programu
Ahoj, profily nejsou IMHO urcene k takovemotu pouziti a bylo by to s nima pekelne slozite. Konkretni reseni zalezi na packagingu aplikace. Napr. pro WAR funguje to, ze je maven umi automaticky mergovat, takze je mozne napr. ty loga prepsat: - mam zakladni WAR modul - mam v WAR modul pro konkretniho zakaznika, ktery ma v sobe jen loga a dalsi nastaveni (napr. XML v nejakem specialnim folderu) a zavisi na zakladnim WARU Maven pak vezme zakladni WAR a pri do nej obsah zakaznikova WARu, pricemz shodne soubory prepise. Slozitejsi mergovani se da do mavenu docela snadno dopsat jako dalsi plugin (v jiz zminovanem ANTu nebo Jave). Lukas Michal Palicka napsal(a): Dobry den, pokud pouzivate MAVEN, tak pro tento ucel slouzi tzv. profily. mp. - Original Message - From: [EMAIL PROTECTED] To: konference@java.cz Sent: Tuesday, August 05, 2008 10:24 AM Subject: Navrh programu Ahoj, řeším problém s aplikací, mám starou aplikaci kde existuje od jedné základní verze 30 pozměněných. Každá pozměněná verze se liší logem, uvítacími stringy a popřípadě zapnutými/vypnutými moduly(případně jsou některé parametry trochu pozměněné). Mohl by někdo poradit jak novou aplikaci navrhnout tak abych měl všech 30 minulých verzí prakticky v jednom projektu a zpráva verzí byla co nejflexibilnější ? Jak pojmout takovou aplikaci ? Díky za každou radu Petr
Https server JDK 1.6
Zdravím, pokouším se uvést to provozu vlastní HTTPS server a používám při tom balík com.sun.net.httpserver co je součástí JDK 1.6. První varianta, kdy jsem používa nezabezpečený HTTP fungovala bez problémů. Potíže nastaly až při přechodu na SSL. Na klientu dostavám vyjímku javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake. Chtěl bych od toho pouze šifrovaný přenos a zabezpečení klientů certifikáty nepotřebuji. Věděl by někdo o fungujícím příkladu https serveru z tohoto balíku? http://java.sun.com/javase/6/docs/technotes/guides/net/index.html je v tomhle dost strucné. Díky, Lukáš Fiala
Hibenrate optimisticke zamykani
Dobry den, chci zacit pouzivat optimisticke zamykani s Hibernate. Konkretne se mi jevi jako zajimavejsi timestamp metoda, nicmene jestil dobre chapu optimisticke zamykani, tak ke zmene casove znamky ma dojit v pripade ze v zaznamu doslo ke zmene. Bohuzel hibernate nastavuje casovou znamku pokazde, kdyz je zaznam nacten. Kyz treba nactu padesat zaznamu okamzite se padesatkrat provede update ... navic pouzivam slozeny datovy typ Adresa, ktery se zapisuje do stejne tabulky do nekolika sloupcu, ale nacteny je jako jediny objekt a i na tento typ se pokazde zavola update. Takze mam tabulku ve ktere jsou dve adresy. Pri nacteni 1 zanzamu se provede trikrate update toho stejneho radku a nastavi se mu cas nacteni. Tohle chovani mi prijde uplne nesmyslne, nevite co jej muze zpusobovat? -- Lukas Benda signature.asc Description: This is a digitally signed message part.
Re: Hibenrate optimisticke zamykani
Dobry den, dynamicky update zapnuty mam, takze v tom to bohuzel neni. Navic mne stve ze ty adresy sem nastavil jako lazy=true nicmene se stejne vzdycky nactou. Nevim jestli vyjimani ze session v mem pripade nebude slozitejsi nez manualni flushing. Otazkou pak zustava jestli je mozne uzavrti session bez flushnuti. Btw. ma teda vubec nejaky smysl metoda save()? Kdyz se stejne vzdycky proveden nad vsema obektama v session? Jak to pak provedu, kdyz tisice obektu pres jednu session nactu a jeden chci zmenit a ulozt? Kdyz dam save(), pak musim stejne zavolat flush(). Takze mam moznost zaslat tisice updatu, nebo tisice objektu vybrat ze session. To mi prijde jako pomerne hodne nemotorne. Dobry den, Hibernate defaultne vsechny objekty uklada pri flushnuti session, protoze vyvojari nejspise usoudili (?), ze je rychlejsi objekt zapsat, nez slozite kontrolovat, zda se v nem neco zmenilo. Mate v podstate 2 moznosti: a) pouzivat dynamicke updaty (atribut dynamic-update=true u tridy v mapovacim XML, pripadne nejaka anotace - dle toho co pouzivate) b) rucne vyjimat (evict) dane objekty ze session H. -Puvodni zprava- Od: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] za uzivatele Lukas Benda Odeslano: Monday, May 12, 2008 13:09 Komu: Java Predmet: Hibenrate optimisticke zamykani Dobry den, chci zacit pouzivat optimisticke zamykani s Hibernate. Konkretne se mi jevi jako zajimavejsi timestamp metoda, nicmene jestil dobre chapu optimisticke zamykani, tak ke zmene casove znamky ma dojit v pripade ze v zaznamu doslo ke zmene. Bohuzel hibernate nastavuje casovou znamku pokazde, kdyz je zaznam nacten. Kyz treba nactu padesat zaznamu okamzite se padesatkrat provede update ... navic pouzivam slozeny datovy typ Adresa, ktery se zapisuje do stejne tabulky do nekolika sloupcu, ale nacteny je jako jediny objekt a i na tento typ se pokazde zavola update. Takze mam tabulku ve ktere jsou dve adresy. Pri nacteni 1 zanzamu se provede trikrate update toho stejneho radku a nastavi se mu cas nacteni. Tohle chovani mi prijde uplne nesmyslne, nevite co jej muze zpusobovat? -- Lukas Benda -- Lukas Benda signature.asc Description: This is a digitally signed message part.
Re: Quartz
Message Driven Beans. Zavolate poslanim JMS zpravy. Lukas vobord1 wrote: zdravim, ve springu mam naplanovanou ulohu pomoci CronTriggerBean (org.quartz.CronTrigger), vsechno funguje dobre, ale chtel bych tuto ulohu spustit mimo naplanovany cas (z webu po kliknuti tlacitka). Uloha muze bezet napriklad 1/2h takze nechci aby prohlizec cekal na dokonceni metody kdyz ji zavolam primo. Spustenim pomoci cronu take zajistim ze se uloha nespusti 2x. jak byste resili tuto situaci? preplanovat ulohu? vytvorit jiny thread? ... dik za odpovedi dave