This is like pulling teeth. Just tell me what you want and why, short 
and sweet.  Think 72 words.

I should true map to 1 and false to 0 in Oracle, SQLServer and MySQL? I 
add some more metadata for this.

-dain

Stephen Coy wrote:

> Oracle does not grok "true" or "false" . It does not have a boolean data 
> type.
> 
> According to my "SQL in a Nutshell", neither does Microsoft SQL Server 
> or MySQL. Postgres on the other hand does.
> 
> Consequently standardjbosscmp-jdbc.xml maps booleans in Oracle:
> 
>          <mapping>
>             <java-type>java.lang.Boolean</java-type>
>             <jdbc-type>BIT</jdbc-type>
>             <sql-type>NUMBER(1)</sql-type>
>          </mapping>
> 
> 
> 
> On Tuesday, May 14, 2002, at 01:50  PM, Dain Sundstrom wrote:
> 
>> 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


-- 
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

Reply via email to