You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Kevin Sutter (JIRA)" <ji...@apache.org> on 2007/01/04 00:13:27 UTC

[jira] Updated: (OPENJPA-95) @IdClass annotation for id field type of byte[]

     [ https://issues.apache.org/jira/browse/OPENJPA-95?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kevin Sutter updated OPENJPA-95:
--------------------------------

    Attachment: ManagedElement.java
                Guid.java
                Agent.java

> @IdClass annotation for id field type of byte[]
> -----------------------------------------------
>
>                 Key: OPENJPA-95
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-95
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>         Environment: Oracle
>            Reporter: Kevin Sutter
>         Assigned To: Marc Prud'hommeaux
>         Attachments: Agent.java, Guid.java, ManagedElement.java
>
>
> This problem was first reported via the dev mailing list starting with this message:
> http://mail-archives.apache.org/mod_mbox/incubator-open-jpa-dev/200701.mbox/%3c89c0c52c0701021503q4bb23dcah248f6fa99c60564a@mail.gmail.com%3e
> It seems that we are having a problem with processing byte[] fields as identity fields when running with Oracle.  The same scenario works just fine with DB2 and Derby.  Marc seems to think this is related to some special blob processing that is in place for Oracle.
> The Exception (and message) that is thrown is:
> Caused by: <4|true|0.0.0> org.apache.openjpa.persistence.ArgumentException: You cannot join on column "MNGD_ELEMENT.ME_GUID".  It is not managed by a mapping that supports joins.
> The complete call stack follows:
> 1500  TRACE  [main] openjpa.MetaData -     Resolving field "model.X509Cert@31116492.agent".
> <4|true|0.0.0> org.apache.openjpa.persistence.ArgumentException : Errors encountered while resolving metadata.  See nested exceptions for details.
>     at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:501)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData (MetaDataRepository.java:283)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:338)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java :151)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:131)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java :211)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:181)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java :174)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$1(JPQLExpressionBuilder.java:173)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1658)
>     at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:52)
>     at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:145)
>     at org.apache.openjpa.kernel.QueryImpl.newCompilation (QueryImpl.java:642)
>     at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:623)
>     at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:589)
>     at org.apache.openjpa.kernel.QueryImpl.compileForExecutor (QueryImpl.java:651)
>     at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1464)
>     at org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:120)
>     at org.apache.openjpa.persistence.QueryImpl.execute (QueryImpl.java:202)
>     at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:251)
>     at jpa.test.LoadTestCase.testLoadAgents(LoadTestCase.java:30)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected (TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java :478)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: <4|true|0.0.0> org.apache.openjpa.persistence.ArgumentException: You cannot join on column "MNGD_ELEMENT.ME_GUID".  It is not managed by a mapping that supports joins.
>     at org.apache.openjpa.jdbc.meta.ClassMapping.assertJoinable (ClassMapping.java:235)
>     at org.apache.openjpa.jdbc.meta.strats.VerticalClassStrategy.map(VerticalClassStrategy.java:99)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy(ClassMapping.java:343)
>     at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:52)
>     at org.apache.openjpa.jdbc.meta.MappingRepository.prepareMapping(MappingRepository.java:305)
>     at org.apache.openjpa.meta.MetaDataRepository.preMapping (MetaDataRepository.java:600)
>     at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:487)
>     ... 33 more
> NestedThrowables:
> <4|true|0.0.0> org.apache.openjpa.persistence.ArgumentException : You cannot join on column "MNGD_ELEMENT.ME_GUID".  It is not managed by a mapping that supports joins.
>     at org.apache.openjpa.jdbc.meta.ClassMapping.assertJoinable(ClassMapping.java:235)
>     at org.apache.openjpa.jdbc.meta.strats.VerticalClassStrategy.map (VerticalClassStrategy.java:99)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.setStrategy(ClassMapping.java:343)
>     at org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java :52)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.resolveMapping(ClassMapping.java:768)
>     at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1569)
>     at org.apache.openjpa.meta.MetaDataRepository.processBuffer (MetaDataRepository.java:654)
>     at org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataRepository.java:615)
>     at org.apache.openjpa.meta.MetaDataRepository.resolve(MetaDataRepository.java:493)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:283)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:338)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData (JPQLExpressionBuilder.java:151)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:131)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData (JPQLExpressionBuilder.java:211)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:181)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType (JPQLExpressionBuilder.java:174)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$1(JPQLExpressionBuilder.java:173)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java :1658)
>     at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:52)
>     at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation(ExpressionStoreQuery.java:145)
>     at org.apache.openjpa.kernel.QueryImpl.newCompilation (QueryImpl.java:642)
>     at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:623)
>     at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(QueryImpl.java:589)
>     at org.apache.openjpa.kernel.QueryImpl.compileForExecutor (QueryImpl.java:651)
>     at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1464)
>     at org.apache.openjpa.kernel.DelegatingQuery.getOperation(DelegatingQuery.java:120)
>     at org.apache.openjpa.persistence.QueryImpl.execute (QueryImpl.java:202)
>     at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:251)
>     at jpa.test.LoadTestCase.testLoadAgents(LoadTestCase.java:30)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected (TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java :478)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> <0|true|0.0.0> org.apache.openjpa.persistence.PersistenceException: null
>     at org.apache.openjpa.jdbc.meta.ClassMapping.assertStrategy(ClassMapping.java:954)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.isPrimaryKeyObjectId( ClassMapping.java:920)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.isForeignKeyObjectId(ClassMapping.java:284)
>     at org.apache.openjpa.jdbc.meta.strats.RelationFieldStrategy.initialize(RelationFieldStrategy.java :189)
>     at org.apache.openjpa.jdbc.meta.FieldMapping.initializeMapping(FieldMapping.java:483)
>     at org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:402)
>     at org.apache.openjpa.jdbc.meta.ClassMapping.initializeMapping (ClassMapping.java:830)
>     at org.apache.openjpa.meta.ClassMetaData.resolve(ClassMetaData.java:1574)
>     at org.apache.openjpa.meta.MetaDataRepository.resolveMapping(MetaDataRepository.java:624)
>     at org.apache.openjpa.meta.MetaDataRepository.resolve (MetaDataRepository.java:493)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:283)
>     at org.apache.openjpa.meta.MetaDataRepository.getMetaData(MetaDataRepository.java:338)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getClassMetaData(JPQLExpressionBuilder.java:151)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.resolveClassMetaData(JPQLExpressionBuilder.java:131)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java:211)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateMetaData(JPQLExpressionBuilder.java :181)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.getCandidateType(JPQLExpressionBuilder.java:174)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder.access$1(JPQLExpressionBuilder.java:173)
>     at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.populate(JPQLExpressionBuilder.java:1658)
>     at org.apache.openjpa.kernel.jpql.JPQLParser.populate(JPQLParser.java:52)
>     at org.apache.openjpa.kernel.ExpressionStoreQuery.populateFromCompilation (ExpressionStoreQuery.java:145)
>     at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java:642)
>     at org.apache.openjpa.kernel.QueryImpl.compilationFromCache(QueryImpl.java:623)
>     at org.apache.openjpa.kernel.QueryImpl.compileForCompilation (QueryImpl.java:589)
>     at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java:651)
>     at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1464)
>     at org.apache.openjpa.kernel.DelegatingQuery.getOperation (DelegatingQuery.java:120)
>     at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:202)
>     at org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:251)
>     at jpa.test.LoadTestCase.testLoadAgents (LoadTestCase.java:30)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect (TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
>     at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:196)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira