Return-Path: Delivered-To: apmail-db-ojb-dev-archive@www.apache.org Received: (qmail 47374 invoked from network); 17 Jun 2004 06:44:08 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 17 Jun 2004 06:44:08 -0000 Received: (qmail 70494 invoked by uid 500); 17 Jun 2004 06:44:43 -0000 Delivered-To: apmail-db-ojb-dev-archive@db.apache.org Received: (qmail 70466 invoked by uid 500); 17 Jun 2004 06:44:42 -0000 Mailing-List: contact ojb-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "OJB Developers List" Reply-To: "OJB Developers List" Delivered-To: mailing list ojb-dev@db.apache.org Received: (qmail 45885 invoked by uid 99); 15 Jun 2004 07:08:41 -0000 X-MimeOLE: Produced By Microsoft Exchange V6.0.6249.0 content-class: urn:content-classes:message Subject: ojb with oracle have some bugs MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Date: Tue, 15 Jun 2004 09:08:00 +0200 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: ojb with oracle have some bugs Thread-Index: AcRSp35gHVU2FZOOQ4GwFRO31mKc4w== From: "Schwarzkopf, Alexander" To: X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N hallo zusammen. ich habe grosse interesse an OJB und versuchte einige einfache Tests = fuer datenbanken mysql, mssql, sybase, informix und oracle durchzufuehren. Es schein in = Grundfunktionalitaeten von PersistanceBroker-Implementation gibt (es ist = auch verstaendlich) noch Fehler. Ich haenge Ausschnitte aus Programm. das Problem ist folgendes. wenn ich in crit.addEqualTo("id", Integer.toString( key ) ) die Klassenvariable benutze, schlaegt die methode getObjectByQuery( = query ) fehl. Wenn ich aber in crit.addEqualTo("nummer", Integer.toString( key ) ) = den Spaltennamen benutze funktioniert es. Benutzen von Spaltennamen = hier ist aber nicht der Sinn der Sache und uebrigens sollte ich dann = immer Spaltennamen und Klassenvariablen gleich nennen. -------------------------------------------------------------------------= ------- I have a big interest for OJB and try to make some simply tests with db = mysql, mssql, sybase, informix and oracle. it seems that PersistanceBroker implementation has some basic error. I = attached one of unfortunal test with part of class, retrieve-method and = repository_user-file to explain, what is wrong for Oracle-DB(9i). If in crit.addEqualTo("id", Integer.toString( key ) ) the class member = id was used, it caused an errror at oracle.jdbc.driver.OraclePreparedStatement.setObject but if I used in crit.addEqualTo("nummer", Integer.toString( key ) ) = the column name, it works.=20 I mean it isn't sense of order that class member name is equal to = column name in the table of database with greeting from D alex schwarzkopf Alexander.Schwarzkopf@stratos-gruppe.de ------------------------------------------------------------- /* MyClass declaration */ public class MyClass { private int id; private String name; public int getId(){ return id; }; public String getName(){ return name; }; public void setId( int val ){ id =3D val; }; public void setName( String val ){ name =3D val; }; } =20 /* function im main Class */ public MyClass retrieveData(int key ) { Criteria crit =3D new Criteria(); /*crit.addEqualTo("nummer", Integer.toString( key ) );*/ crit.addEqualTo("id", Integer.toString( key ) ); QueryByCriteria query =3D new QueryByCriteria( MyClass.class, crit ); System.out.println("retrieve or not retrieve?" ); return(MyClass)broker.getObjectByQuery( query ); } /* error */ retrieve or not retrieve? java.lang.ClassCastException at = oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatem= ent.java:2018) at = oracle.jdbc.driver.OraclePreparedStatement.setObject(OraclePreparedStatem= ent.java:2099) at = com.p6spy.engine.spy.P6PreparedStatement.setObject(P6PreparedStatement.ja= va:294) at = org.apache.ojb.broker.platforms.PlatformDefaultImpl.setObjectForStatement= (PlatformDefaultImpl.java:227) at = org.apache.ojb.broker.platforms.PlatformOracleImpl.setObjectForStatement(= PlatformOracleImpl.java:137) at = org.apache.ojb.broker.accesslayer.StatementManager.bindStatementValue(Sta= tementManager.java:216) at = org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Statemen= tManager.java:248) at = org.apache.ojb.broker.accesslayer.StatementManager.bindSelectionCriteria(= StatementManager.java:424) at = org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Statemen= tManager.java:388) at = org.apache.ojb.broker.accesslayer.StatementManager.bindStatement(Statemen= tManager.java:361) at = org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(JdbcAccessI= mpl.java:278) at = org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(RsQueryObjec= t.java:74) at = org.apache.ojb.broker.accesslayer.RsIterator.(RsIterator.java:183) at = org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(RsItera= torFactoryImpl.java:58) at = org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(P= ersistenceBrokerImpl.java:1780) at = org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Per= sistenceBrokerImpl.java:1321) at = org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Persist= enceBrokerImpl.java:1432) at = org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(D= elegatingPersistenceBroker.java:300) at = org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(D= elegatingPersistenceBroker.java:300) at TestOra1.retrieveData(TestOra1.java:27) at TestOra1.main(TestOra1.java:39) Exception in thread "main"=20 --------------------------------------------------------------------- To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org For additional commands, e-mail: ojb-dev-help@db.apache.org