Re: Eclipse RCP client + Spring backend
K SWT bych ještě dodal tento link, velmi dobrý pomocník... http://www.eclipse.org/swt/widgets/ A ještě jednou zdůrazním nápověda, která je v eclipse IDE obsahuje kompletní dokumentaci i k platformě (ext. points, contributions, etc) a k swt i jface (moc milá věc, nejenom MVC, ale hlavně rychle vyrobené open/save dialogy, prompty atd) __ Lukáš Záruba (Lukas Zaruba) Chief Technical Officer MEDIA SOLUTIONS EUROPE Lisabonská 4 Praha 9 190 00 Czech Republic phone: +420 721 879 363 Rastislav Rehak napsal(a): Ahoj raz sme robili jednu velku vec na Eclipse RCP so Springovym zadkom. Komunikacia bola cez Spring RPC. Perzistencia Hibernate. Rozhodne je to schodna cesta. Velky doraz bol kladeny na vykon.Bohuzial publikovat to moc nemozeme. V podstate vzdy ked sa zacinal Eclipse RCP projekt tak si ludia precitali tutorial od Eclipsu a existoval jeden clovek co to uz vedel a mohol ich zaskolit. Dalsia vec na ktoru si treba davat pozor je skutocne komplexnost Eclipsu. Su tam vlastne tri oblastni ktore musite zvladnut: - SWT , uplne iny toolkit oproti swingu, vyhoda je ak poznate win32 API . - Eclipse RCP - pluginy, extension pointy atd - JFaces - high level komponenty nieco ako MVC framework Pokial sa dobre pamatam, tak na Eclipsovych strankach su aj priklady. R David Mach wrote: Zdravím, najde se v českých luzích a hájích někdo s praktickými zkušenostmi s vývojem klientské aplikace na bázi Eclipse RCP? Ideálně připojené na serverový backend postavený na Springu... Rád bych pár věcí před startem projektu konzultoval, ale budu vděčný i za každý odkaz na tutoriál nebo (open source) projekt. Díky předem! David Mach
Re: Eclipse RCP client + Spring backend
Zdravím, uvednou kombinaci jsme v bývalé firmě používali. Backend byl v Spring a Hibernate, klient v Eclipse RCP spolu se Springem. Pro komunikaci jsme používali Spring http invoker. Spring jsme na klientovi používali i pro dependency injection a konfiguraci jednotlivých view, commandu atd. Je to schůdná cesta, ale jak už tady někdo psal Eclipse RCP je velký framework a je dobré ho dopředu dobře nastudovat. Hodně štěstí, tomáš 2010/3/10 David Mach m...@alis.cz Zdravím, najde se v českých luzích a hájích někdo s praktickými zkušenostmi s vývojem klientské aplikace na bázi Eclipse RCP? Ideálně připojené na serverový backend postavený na Springu... Rád bych pár věcí před startem projektu konzultoval, ale budu vděčný i za každý odkaz na tutoriál nebo (open source) projekt. Díky předem! David Mach
hibernate a instanceOf
Zdravim konferenciu, mam v hibernate nasledovne objekty: objekt Customer : @Entity @Table(name=customer) @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = customer_type, discriminatorType=DiscriminatorType.STRING) public abstract class Customer extends BaseObject { } a od neho odvodeny objekt Shipper: @Entity @DiscriminatorValue(S) public class Shipper extends Customer { ...} potrebujem pouzit nasledovny test: returnValue = Class.forName(className).isInstance(o); kde className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). preco je returnValue FALSE, ked by podla mna malo byt TRUE ? dakujem Ivan
RE: hibernate a instanceOf
Nechtel jsi spis pouzit Class.isAssignableFrom? Hibernate Ti primo v dokumentaci nezarucuje, ze kdyz mu das nejakou tridu, tak primo ji dostanes. Hodne casto dostanes nejakeho jejich potomka. -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Ivan Polak Sent: Thursday, March 11, 2010 12:47 PM To: Java Subject: hibernate a instanceOf Zdravim konferenciu, mam v hibernate nasledovne objekty: objekt Customer : @Entity @Table(name=customer) @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = customer_type, discriminatorType=DiscriminatorType.STRING) public abstract class Customer extends BaseObject { } a od neho odvodeny objekt Shipper: @Entity @DiscriminatorValue(S) public class Shipper extends Customer { ...} potrebujem pouzit nasledovny test: returnValue = Class.forName(className).isInstance(o); kde className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). preco je returnValue FALSE, ked by podla mna malo byt TRUE ? dakujem Ivan
Re: hibernate a instanceOf
Ne často, vždy :-) Je to základní princip fungování Hibernate. Kamil Podlešák 2010/3/11 Tomas Hubalek tomas.huba...@onsemi.com: Nechtel jsi spis pouzit Class.isAssignableFrom? Hibernate Ti primo v dokumentaci nezarucuje, ze kdyz mu das nejakou tridu, tak primo ji dostanes. Hodne casto dostanes nejakeho jejich potomka. -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Ivan Polak Sent: Thursday, March 11, 2010 12:47 PM To: Java Subject: hibernate a instanceOf Zdravim konferenciu, mam v hibernate nasledovne objekty: objekt Customer : @Entity @Table(name=customer) @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = customer_type, discriminatorType=DiscriminatorType.STRING) public abstract class Customer extends BaseObject { } a od neho odvodeny objekt Shipper: @Entity @DiscriminatorValue(S) public class Shipper extends Customer { ...} potrebujem pouzit nasledovny test: returnValue = Class.forName(className).isInstance(o); kde className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). preco je returnValue FALSE, ked by podla mna malo byt TRUE ? dakujem Ivan
Re: hibernate a instanceOf
Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate a instanceOf
ano, lazy loading je v aplikacii zapnuty. Ivan 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate a instanceOf
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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate a instanceOf
podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate a instanceOf
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 a instanceOf
a zabudol som napisat ze to nepomohlo :-( Ivan 2010/3/11 Ivan Polak ivan.po...@f4s.sk: podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
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
Nemuzete to prevest na rozhodnovani dle hodnoty discriminatoru? Ten si muzete namapovat jako vlastnost Custommera (update=false, insert=false) a nasledne provadet testy podle hodnoty teto vlastnosti. Pouzivat instanceofy a spol., navic v prostredi prolezlem proxynama, zejmena na dedicne strukture neni nejlepsi. VS 2010/3/11 Ivan Polak ivan.po...@f4s.sk: a zabudol som napisat ze to nepomohlo :-( Ivan 2010/3/11 Ivan Polak ivan.po...@f4s.sk: podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: Obdoba PreparedStatement.setMaxRows() na straně databáze
Zdar, v Hibernate pomocí criterií Criteria criteria; .. criteria.setMaxResults(100); criteria.setFirstResult(0); Provoz nad Oracle ok. Jara Oto Buchta ta...@buchtovi.cz Odeslal: konference-boun...@java.cz 11.03.2010 13:25 Odpovězte prosím uživateli Java Komu: Java konference@java.cz Kopie: Předmět:Obdoba PreparedStatement.setMaxRows() na straně databáze 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: Obdoba PreparedStatement.setMaxRows( ) na straně databáze
Napríklad Hibernate s Oracle 10 po nastavení: /Query.setFirstResult(x); Query.setMaxResults(y); / vygeneruje SQL: select * from ( select row_.*, rownum rownum_ from ( select alias1_.column1, alias1_.column2, alias1_.columnN, from TABLE alias1_ ) row_ where rownum = ? ) where rownum_ ? To je asi presne to, čo chcete. 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 11. 3. 2010 13:37, Lukas Barton wrote: 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 mailto: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 mailto:ta...@buchtovi.cz, http://tapikuv.blogspot.com
Re: Obdoba PreparedStatement.setMaxRows() na straně databáze
Diky. Nevim, proc jsem si myslel, ze se jedna o driver based reseni. public String Dialect.getLimitString() je presne to, co jsem hledal. Ted se jeste musim zamyslet, jestli pouzit cely Hibernate nebo pouze onu metodu. 2010/3/11 Lukas Barton lu...@cnawr.cz: 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 -- Oto 'tapik' Buchta, ta...@buchtovi.cz, http://tapikuv.blogspot.com
Re: hibernate a instanceOf
ano samozrejme mozem, len ma zaujimalo preco to nefunguje. urobil som to tak. dakujem Ivan 2010/3/11 Vaclav Stumbauer stum...@gmail.com: Nemuzete to prevest na rozhodnovani dle hodnoty discriminatoru? Ten si muzete namapovat jako vlastnost Custommera (update=false, insert=false) a nasledne provadet testy podle hodnoty teto vlastnosti. Pouzivat instanceofy a spol., navic v prostredi prolezlem proxynama, zejmena na dedicne strukture neni nejlepsi. VS 2010/3/11 Ivan Polak ivan.po...@f4s.sk: a zabudol som napisat ze to nepomohlo :-( Ivan 2010/3/11 Ivan Polak ivan.po...@f4s.sk: podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
Re: hibernate a instanceOf
Pozor na pořadí: A instanceof B == B.class.isAssignableFrom(A.getClass()) ALE Podíval jsem se na to pořádně a musím si posypat popel na hlavu: problém je někde úplně jinde a isInstance by dokonce bylo správně. Problém je ve skutečnosti v tom, že Hibernate vytvoří proxy pro Customer, i když objekt je ve skutečnosti potomek. Je to specifický problém Hibernate a řešením je deproxyfikace pomocí (HibernateProxy)o).getHibernateLazyInitializer().getImplementation(), případně vypnutí proxy pomocí @Proxy(lazy=false) (tady je ale otázka zda to je použitelné...). Více podrobností (a odkazy na další varianty řešení) na: http://blog.smart-java.nl/blog/index.php/2010/03/08/hibernate-lazy-loading-and-inheritance/ Kamil Podlešák PS: Asi si budu muset stáhnout aktuální zdrojáky a podívat se, jakým způsobem sleduje změny bez proxy, to mě docela zajímá. 2010/3/11 Ivan Polak ivan.po...@f4s.sk: podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */
RE: hibernate a instanceOf
A co vlastne vraci o.getClass()? -Original Message- From: konference-boun...@java.cz [mailto:konference-boun...@java.cz] On Behalf Of Ivan Polak Sent: Thursday, March 11, 2010 1:54 PM To: Java Subject: Re: hibernate a instanceOf ano samozrejme mozem, len ma zaujimalo preco to nefunguje. urobil som to tak. dakujem Ivan 2010/3/11 Vaclav Stumbauer stum...@gmail.com: Nemuzete to prevest na rozhodnovani dle hodnoty discriminatoru? Ten si muzete namapovat jako vlastnost Custommera (update=false, insert=false) a nasledne provadet testy podle hodnoty teto vlastnosti. Pouzivat instanceofy a spol., navic v prostredi prolezlem proxynama, zejmena na dedicne strukture neni nejlepsi. VS 2010/3/11 Ivan Polak ivan.po...@f4s.sk: a zabudol som napisat ze to nepomohlo :-( Ivan 2010/3/11 Ivan Polak ivan.po...@f4s.sk: podla rady som uvedeny riadok : returnValue = Class.forName(className).isInstance(o); zmenil na: returnValue = o.getClass().isAssignableFrom(Class.forName(className)); ako som uviedol className je premenna typu String s hodnotou com.project.Shipper a Objekt o je cez Hibernate vytiahnuty objekt z DB, zobraznene vo watch okne: Customer_$$_javassist_145 (...). dakujem Ivan 2010/3/11 Kamil Podlesak kamil.podle...@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. Každopádně, ještě bych dodal: původní tazatel udělal chybu v tom, že za dynamickou obdobu operátoru instanceof považoval Class.isInstance, což je špatně (správně je Class.isAssignableFrom). Kamil Podlešák 2010/3/11 Roman Pichlík roman.pich...@gmail.com: Ne často, vždy :-) Je to základní princip fungování Hibernate. to bych nerekl, ze vzdycky vraci proxy. IMHO pouze pokud je to potreba napr. lazy loading. -- S pozdravem Roman Dagi Pichlik /* http://www.sweb.cz/pichlik/ Blog pro kodery */