So sorry .. attached the wrong one .. Please see the correct one here.If I
run the junit , I get this exception "javax.ejb.EJBException: EJB Exception:
; nested exception is:
<openjpa-1.1.0-r422266:657916 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: [BEA][Oracle JDBC
Driver][Oracle]ORA-01790: expression must have same datatype as
corresponding expression
{prepstmnt 2625 SELECT 0, t0.ID, t0.version, t0.master_Ref, t0.NAME_F, '',
0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM AddOn_T t0 WHERE t0.ID = ?
UNION ALL SELECT 1, t0.ID, t0.version, t0.addOn_Ref, t0.NAME_F, '', 0, NULL,
'', 0, 0, '1970-01-01', '', 0.0 FROM Master_T t0 WHERE t0.ID = ? UNION ALL
SELECT 2, t0.ID, t0.version, t0.NAME_F, t0.primaryMaster_Ref,
t0.secondaryMaster_Ref, 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
Slave_T t0 WHERE t0.ID = ? UNION ALL SELECT 3, t0.ID, t0.version,
t0.addOn_Ref, t0.NAME_F, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubAddOn_T t0 WHERE t0.ID = ? UNION ALL SELECT 4, t0.ID, t0.version,
t0.NAME_F, t0.slave_Ref, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubSlave_T t0 WHERE t0.ID = ? UNION ALL SELECT 5, t0.ID, t0.version, '', '',
'', t0.COUNTER_F, t0.DATA_F, t0.ENUMED1_F, t0.ENUMED2_F, t0.FLAG_F,
t0.MOMENT_F, t0.NAME_F, t0.VALUE_F FROM TYPED_T t0 WHERE t0.ID = ?
[params=(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String) 34B85860E33211DE984DF2390A53043A,
(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A]} [code=1790, state=HY000]
at
weblogic.ejb.container.internal.RemoteBusinessIntfProxy.unwrapRemoteException(RemoteBusinessIntfProxy.java:105)
at
weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:87)
at $Proxy0.testType(Unknown Source)
at com.tieto.magic.poc.test.TestSample.testP(TestSample.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:232)
at junit.framework.TestSuite.run(TestSuite.java:227)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: <openjpa-1.1.0-r422266:657916 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: [BEA][Oracle JDBC
Driver][Oracle]ORA-01790: expression must have same datatype as
corresponding expression
{prepstmnt 2625 SELECT 0, t0.ID, t0.version, t0.master_Ref, t0.NAME_F, '',
0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM AddOn_T t0 WHERE t0.ID = ?
UNION ALL SELECT 1, t0.ID, t0.version, t0.addOn_Ref, t0.NAME_F, '', 0, NULL,
'', 0, 0, '1970-01-01', '', 0.0 FROM Master_T t0 WHERE t0.ID = ? UNION ALL
SELECT 2, t0.ID, t0.version, t0.NAME_F, t0.primaryMaster_Ref,
t0.secondaryMaster_Ref, 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
Slave_T t0 WHERE t0.ID = ? UNION ALL SELECT 3, t0.ID, t0.version,
t0.addOn_Ref, t0.NAME_F, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubAddOn_T t0 WHERE t0.ID = ? UNION ALL SELECT 4, t0.ID, t0.version,
t0.NAME_F, t0.slave_Ref, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubSlave_T t0 WHERE t0.ID = ? UNION ALL SELECT 5, t0.ID, t0.version, '', '',
'', t0.COUNTER_F, t0.DATA_F, t0.ENUMED1_F, t0.ENUMED2_F, t0.FLAG_F,
t0.MOMENT_F, t0.NAME_F, t0.VALUE_F FROM TYPED_T t0 WHERE t0.ID = ?
[params=(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String) 34B85860E33211DE984DF2390A53043A,
(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A]} [code=1790, state=HY000]
at
org.apache.openjpa.jdbc.sql.SQLExceptions.narrow(SQLExceptions.java:146)
at
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4150)
at
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
at
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88)
at
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:268)
at
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
at
org.apache.openjpa.datacache.DataCacheStoreManager.initialize(DataCacheStoreManager.java:336)
at
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
at
org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:894)
at kodo.kernel.KodoBroker.initialize(KodoBroker.java:65)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:852)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:769)
at kodo.kernel.KodoBroker.find(KodoBroker.java:232)
at
org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:183)
at
org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:452)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:90)
at
weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:89)
at
weblogic.deployment.BasePersistenceContextProxyImpl.invoke(BasePersistenceContextProxyImpl.java:80)
at
weblogic.deployment.TransactionalEntityManagerProxyImpl.invoke(TransactionalEntityManagerProxyImpl.java:24)
at $Proxy140.find(Unknown Source)
at
com.tieto.magic.poc.domain.DomainServicesBean.testType(DomainServicesBean.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:281)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:187)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:154)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:15)
at
weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
at
com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:30)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:126)
at
com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:114)
at
com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:176)
at
com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:210)
at $Proxy142.testType(Unknown Source)
at
com.tieto.magic.poc.domain.DomainServicesBean_au5mn8_DomainServicesRImpl.testType(DomainServicesBean_au5mn8_DomainServicesRImpl.java:65)
at
com.tieto.magic.poc.domain.DomainServicesBean_au5mn8_DomainServicesRImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:589)
at
weblogic.rmi.cluster.ClusterableServerRef.invoke(ClusterableServerRef.java:230)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:477)
at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:473)
at
weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.lang.Exception:
org.apache.openjpa.lib.jdbc.ReportingSQLException: [BEA][Oracle JDBC
Driver][Oracle]ORA-01790: expression must have same datatype as
corresponding expression
{prepstmnt 2625 SELECT 0, t0.ID, t0.version, t0.master_Ref, t0.NAME_F, '',
0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM AddOn_T t0 WHERE t0.ID = ?
UNION ALL SELECT 1, t0.ID, t0.version, t0.addOn_Ref, t0.NAME_F, '', 0, NULL,
'', 0, 0, '1970-01-01', '', 0.0 FROM Master_T t0 WHERE t0.ID = ? UNION ALL
SELECT 2, t0.ID, t0.version, t0.NAME_F, t0.primaryMaster_Ref,
t0.secondaryMaster_Ref, 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
Slave_T t0 WHERE t0.ID = ? UNION ALL SELECT 3, t0.ID, t0.version,
t0.addOn_Ref, t0.NAME_F, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubAddOn_T t0 WHERE t0.ID = ? UNION ALL SELECT 4, t0.ID, t0.version,
t0.NAME_F, t0.slave_Ref, '', 0, NULL, '', 0, 0, '1970-01-01', '', 0.0 FROM
SubSlave_T t0 WHERE t0.ID = ? UNION ALL SELECT 5, t0.ID, t0.version, '', '',
'', t0.COUNTER_F, t0.DATA_F, t0.ENUMED1_F, t0.ENUMED2_F, t0.FLAG_F,
t0.MOMENT_F, t0.NAME_F, t0.VALUE_F FROM TYPED_T t0 WHERE t0.ID = ?
[params=(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String) 34B85860E33211DE984DF2390A53043A,
(String) 34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A, (String)
34B85860E33211DE984DF2390A53043A]} [code=1790, state=HY000]
at
org.apache.openjpa.util.Exceptions.replaceNestedThrowables(Exceptions.java:249)
at
org.apache.openjpa.persistence.PersistenceException.writeObject(PersistenceException.java:100)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at
java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509)
at
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
at
java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at
weblogic.rjvm.MsgAbbrevOutputStream.writeObject(MsgAbbrevOutputStream.java:618)
at
weblogic.rjvm.MsgAbbrevOutputStream.sendThrowable(MsgAbbrevOutputStream.java:471)
at
weblogic.rmi.internal.BasicServerRef.handleThrowable(BasicServerRef.java:694)
at
weblogic.rmi.internal.BasicServerRef.postInvoke(BasicServerRef.java:650)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:492)
... 3 more
"
http://n2.nabble.com/file/n4138239/SampleEJBEar.ear SampleEJBEar.ear
Ravi P Palacherla wrote:
>
> Looks like the SampleEJB.ear in the attachment is not a correct ear.
> I am unable to deploy it on Weblogic server.
>
> Also the configuration files (like persistence.xml) and entities are
> missing in the attachment without which I may not be able to tell what
> configuration you are using.
>
> Are you using openJPA configurations or kodo configurations ?
> There was a known issue with a CLOB data type when kodo configuration is
> used.
> The fix for this is in kodo files, it overrides openJPA's classes in order
> to fix it.
>
> Before going into details of the fix, Please attach a replicable testcase.
> That way I can see if the same fix applies for your scenario or not.
>
> It would be great if you are able to replicate the issue with openJPA
> configuration itself; we can work together on resolving the issue in
> openJPA itself.
>
> Also there were some workarounds of setting "SubclassFetchMode=none";which
> I would not completely recommend with out understanding your complete
> environment.
>
> Regards,
> Ravi.
>
>
> himadri wrote:
>>
>>
>>
>> Hi,
>>
>> This is strange. The problem comes when I add Child Associations to the
>> entity. If I remove Child Asscoiations , all work fine. I have attached
>> my Sample here.
>> Please see JPG for Entity Associations. SampleEJB.ear is the deployable
>> ear on WL10.3.
>>
>> Let me know if you find out anything .. for now I have replace all
>> em.find with em.createQuery(Select ...) , But will like to know the real
>> reason behind it !
>>
>> Lemme know if I can provide more simplified sample ....
>>
>> Thanks,
>> Himadri
>>
>>
>> ________________________________
>> From: Kevin Sutter [via OpenJPA]
>> <[email protected]>
>> To: himadri <[email protected]>
>> Sent: Thu, 3 December, 2009 5:39:17 AM
>> Subject: Re: Open JPA generates incorrect Union All for Date and Boolean
>> Datatype
>>
>> This sounds very strange. From your description, I have no idea why Date
>> and Boolean attributes are having problems with Oracle. And, why a Union
>> All is being generated for a simple find operation baffles me as well.
>> Unless there is some inheritance or eagerly fetched relationships
>> involved.
>> Still, I thought OpenJPA used Joins over Unions.
>>
>> Can you simplify the problem to a simple testcase that could be provided?
>>
>> Thanks,
>> Kevin
>>
>> On Tue, Dec 1, 2009 at 7:15 AM, himadri <[hidden email]> wrote:
>>
>>
>>>
>>> Hi,
>>>
>>> I have an EJB3.0 application deployed on Weblogic 10.3 and Oracle 10g
>>> DB. I
>>> have an entity Typed which has Date and Boolean datatypes. em.persist is
>>> sucessful.
>>>
>>> But whereever there is em.find() on any entity in this application , I
>>> have
>>> observed that open JPA tries to get Union of all entities. This may be
>>> because its first time , But it fails with exception
>>>
>>> "[BEA][Oracle JDBC Driver][Oracle]ORA-01790:expression must have same
>>> datatype as corresponding expression"
>>>
>>> The SQL generated is union all of all entities in the application . For
>>> boolean FLAG_F , MOMENT_F wrong sql is generated. It should have to_date
>>> function for date. I have used DATE and boolean in Entity class.
>>>
>>> SELECT 0, t0.ID, t0.version, t0.NAME_F, '', 0, NULL, '', 0, 0,
>>> '1970-01-01',
>>> '', 0.0 FROM AddOn_T t0 WHERE t0.ID = ?
>>> UNION ALL
>>> SELECT 1, t0.ID, t0.version, '', '', t0.COUNTER_F, t0.DATA_F,
>>> t0.ENUMED1_F,
>>> t0.ENUMED2_F, t0.FLAG_F, t0.MOMENT_F, t0.NAME_F, t0.VALUE_F FROM TYPED_T
>>> t0
>>> WHERE t0.ID = ? [params=(String) 30, (String) 30]} [code=1790,
>>> state=HY000]
>>>
>>> I guess openJPA fails to add to_date function for DATE and surrounding
>>> chars
>>> for boolean. Is this a bug or some settings available. Why is it trying
>>> to
>>> get union all even for em.find(... ) ?
>>>
>>> Thanks in advance..
>>> - H
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>> View this message in context:
>>> http://n2.nabble.com/Open-JPA-generates-incorrect-Union-All-for-Date-and-Boolean-Datatype-tp4093559p4093559.html
>>> Sent from the OpenJPA Users mailing list archive at Nabble.com.
>>>
>>
>>
>> ________________________________
>>
>> View message @
>> http://n2.nabble.com/Open-JPA-generates-incorrect-Union-All-for-Date-and-Boolean-Datatype-tp4093559p4103283.html
>>
>> To unsubscribe from Open JPA generates incorrect Union All for Date and
>> Boolean Datatype, click here.
>>
>>
>>
>> The INTERNET now has a personality. YOURS! See your Yahoo!
>> Homepage. http://in.yahoo.com/
>>
>>
>
>
--
View this message in context:
http://n2.nabble.com/Open-JPA-generates-incorrect-Union-All-for-Date-and-Boolean-Datatype-tp4093559p4138239.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.