I don't get this. The log says it is executing this query: SELECT DISTINCT t0_bean.a_Boolean, t0_bean.an_Int, t0_bean.a_Long, t0_bean.a_Double, t0_bean.a_String FROM CMP2ENTITY t0_bean WHERE t0_bean.a_Boolean = true
So what is wrong with that where clause? Are there any Oracle DBAs out there that can shed some light on to why this query is rejected. -dain Stephen Coy wrote: > Reposted here at Dain's request... > > Begin forwarded message: > > > > Hi All, > > I think I have found a bug when specifying your own finder method with > EJB QL and Oracle. > > The problem is that in EJB QL any comparisons to a boolean field must be > made using the keywords TRUE or FALSE. When I do this I get an > exception come back fromOracle telling me it doesn't know the field > name. It seems that JBoss is not converting the TRUE or FALSE to a 1 or > 0 when it sends the SQL to Oracle, that is, "...wheremyBoolean = true" > is being sent to Oracle. > > I have tried all possible sensible <jdbc-type> to <sql-type> tags in the > XML files. > > Anyway,I have created a unit test package for this - it is attached. It > plugs into the JBoss testsuite. To compile the test, you will need to > add the following to the jboss-all/testsuite/build.xml: > > > <target name="jars" description="Builds all jar files." depends="compile, > ... > _jars-dbtest, > _jars-findWhereBoolean, > ... > _jars-bankiiop"> > </target> > > <!-- findWhereBoolean test --> > <target name="_jars-findWhereBoolean"> > <mkdir dir="${build.lib}"/> > > <!-- build findWhereBooleanTestClient.jar --> > <jar jarfile="${build.lib}/findWhereBooleanTestClient.jar" > manifest="${build.etc}/manifest.mf"> > <fileset dir="${build.classes}"> > <patternset refid="common.test.client.classes"/> > <include name="org/jboss/test/findWhereBoolean/interfaces/**"/> > <include name="org/jboss/test/findWhereBoolean/test/**"/> > </fileset> > <fileset dir="${build.resources}/findWhereBoolean"> > <include name="*.*"/> > </fileset> > </jar> > > <!-- build findWhereBoolean.jar --> > <jar jarfile="${build.lib}/findWhereBoolean.jar"> > <fileset dir="${build.classes}"> > <patternset refid="common.test.application.classes"/> > <include name="org/jboss/test/findWhereBoolean/interfaces/**"/> > <include name="org/jboss/test/findWhereBoolean/bean/**"/> > </fileset> > <fileset dir="${build.resources}/findWhereBoolean"> > <include name="**/*.xml"/> > </fileset> > </jar> > </target> > > > > If you're interested, the actual JBoss server.log error message and > stack trace is: > > > 2002-05-13 18:18:45,506 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.CMP2Entity.findAllWhereBooleanIsTrue] > Executing SQL: SELECT DISTINCT t0_bean.a_Boolean, t0_bean.an_Int, > t0_bean.a_Long, t0_bean.a_Double, t0_bean.a_String FROM CMP2ENTITY > t0_bean WHERE t0_bean.a_Boolean = true > 2002-05-13 18:18:45,516 DEBUG > [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.CMP2Entity.findAllWhereBooleanIsTrue] > Find failed > java.sql.SQLException: ORA-00904: invalid column name > > at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) > at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) > at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543) > at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451) > at > oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:651) > at > oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2117) > > at > oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2331) > > at > >oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:422) > > > at > >oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:366) > > > at > >org.jboss.resource.adapter.jdbc.local.PreparedStatementInPool.executeQuery(PreparedStatementInPool.java:862) > > > at > >org.jboss.ejb.plugins.cmp.jdbc.JDBCAbstractQueryCommand.execute(JDBCAbstractQueryCommand.java:107) > > > at > >org.jboss.ejb.plugins.cmp.jdbc.JDBCFindEntitiesCommand.execute(JDBCFindEntitiesCommand.java:40) > > > at > >org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.findEntities(JDBCStoreManager.java:466) > > > at > >org.jboss.ejb.plugins.CMPPersistenceManager.findEntities(CMPPersistenceManager.java:348) > > > at > >org.jboss.resource.connectionmanager.CachedConnectionInterceptor.findEntities(CachedConnectionInterceptor.java:284) > > > at org.jboss.ejb.EntityContainer.find(EntityContainer.java:662) > at java.lang.reflect.Method.invoke(Native Method) > at > >org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1111) > > > at > org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73) > > at > >org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:230) > > > at > >org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:176) > > > at > >org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:134) > > > at > >org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:79) > > at > >org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:44) > > > at > >org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:98) > > at > >org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:167) > > at > org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:52) > at > org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:104) > > at > org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:109) > at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:487) > at org.jboss.ejb.Container.invoke(Container.java:727) > at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055) > at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491) > at > org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:364) > at java.lang.reflect.Method.invoke(Native Method) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241) > at sun.rmi.transport.Transport$1.run(Transport.java:152) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:148) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:465) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:706) > > at java.lang.Thread.run(Thread.java:484) > > > > I would appreciate any fix or workaround. > Thanks, > Evan. > > > Evan Toliopoulos > Whitesmiths Australia Pty Ltd > Level 6, 44 Miller Street > North Sydney, 2060, Australia > Tel: + 61 2 8912 1728 > Fax: + 61 2 8912 1701 > Web: http://www.whitesmiths.com.au > > -- xxxxxxxxxxxxxxxxxxxxxxxxx Dain Sundstrom Chief Architect, JBossCMP JBoss Group, LLC xxxxxxxxxxxxxxxxxxxxxxxxx _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user