You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by catalina wei <ca...@gmail.com> on 2010/06/12 17:23:05 UTC
Re: [jira] Commented: (OPENJPA-1461) Incorrect Oracle CREATE TABLE
DDL for XML column
Hi Michele,
It looks to me that the @XmlType annotation is causing the XmlType column
mapping.
When @XmlType annotation along with
@Strategy("org.apache.openjpa.jdbc.meta.strats.XMLValueHandler"), then the
XmlType column mapping is taking effect. Your entity annotation is using
EnumValueHandler, yet the Xml column is generated in create table DDL.
OPENJPA-1461 was resolving a problem for a Xml column mapping where Xml type
was suffixed with default length (128) - resulted in SQLException. Your
problem is a different issue - OPENJPA-1697 is addressing this issue.
Could you attach your enum AuthorityValues source code to the jira issue ?
So I can reproduce the problem.
Thanks.
Catalina
On Fri, Jun 11, 2010 at 3:36 AM, Michele Rossi (JIRA) <ji...@apache.org>wrote:
>
> [
> https://issues.apache.org/jira/browse/OPENJPA-1461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877772#action_12877772]
>
> Michele Rossi commented on OPENJPA-1461:
> ----------------------------------------
>
> the result is the same even without the following annotations
>
> @Persistent
> @Strategy("org.apache.openjpa.jdbc.meta.strats.EnumValueHandler")
>
>
> I am still trying to find a way to disable the use of XmlType - I just want
> it to be a string
>
> > Incorrect Oracle CREATE TABLE DDL for XML column
> > ------------------------------------------------
> >
> > Key: OPENJPA-1461
> > URL: https://issues.apache.org/jira/browse/OPENJPA-1461
> > Project: OpenJPA
> > Issue Type: Bug
> > Components: jdbc
> > Affects Versions: 2.0.0-M3
> > Reporter: Catalina Wei
> > Assignee: Catalina Wei
> > Fix For: 2.0.0-beta
> >
> >
> > A regression is found that the DDL for XML type is incorrectly generated
> for Oracle backend.
> > <openjpa-2.0.0-SNAPSHOT-rexported nonfatal general error>
> org.apache.openjpa.persistence.PersistenceException: ORA-00907: missing
> right parenthesis
> > {stmnt 562241923 CREATE TABLE TORDER (oid NUMBER NOT NULL, amount
> NUMBER, delivered NUMBER, shipAddress XMLType(255), version NUMBER,
> CUSTOMER_COUNTRYCODE VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))}
> [code=907, state=42000]
> > at
> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553)
> > at
> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
> > at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:155)
> > at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
> > at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:117)
> > at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:207)
> > at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:194)
> > at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:152)
> > at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:200)
> > at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:151)
> > at
> org.apache.openjpa.persistence.xmlmapping.query.TestXMLCustomerOrder.setUp(TestXMLCustomerOrder.java:75)
> > at junit.framework.TestCase.runBare(TestCase.java:125)
> > at
> org.apache.openjpa.persistence.test.AbstractPersistenceTestCase.runBare(AbstractPersistenceTestCase.java:501)
> > at
> org.apache.openjpa.persistence.test.AbstractPersistenceTestCase.runBare(AbstractPersistenceTestCase.java:477)
> > 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.apache.openjpa.persistence.test.AbstractPersistenceTestCase.run(AbstractPersistenceTestCase.java:177)
> > at junit.framework.TestSuite.runTest(TestSuite.java:208)
> > at junit.framework.TestSuite.run(TestSuite.java:203)
> > at
> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
> > 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: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00907:
> missing right parenthesis
> > {stmnt 562241923 CREATE TABLE TORDER (oid NUMBER NOT NULL, amount
> NUMBER, delivered NUMBER, shipAddress XMLType(255), version NUMBER,
> CUSTOMER_COUNTRYCODE VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))}
> [code=907, state=42000]
> > Correct DDL should be:
> > CREATE TABLE TORDER (oid NUMBER NOT NULL, amount NUMBER, delivered
> NUMBER, shipAddress XMLType, version NUMBER, CUSTOMER_COUNTRYCODE
> VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>
Re: [jira] Commented: (OPENJPA-1461) Incorrect Oracle CREATE TABLE
DDL for XML column
Posted by catalina wei <ca...@gmail.com>.
Hi Michele,
I have the fix for OPENJPA-1697 checked in under svn trunk revision r954345.
Could you give it a try ?
Thanks.
Catalina
On Sat, Jun 12, 2010 at 8:23 AM, catalina wei <ca...@gmail.com>wrote:
> Hi Michele,
> It looks to me that the @XmlType annotation is causing the XmlType column
> mapping.
> When @XmlType annotation along with
> @Strategy("org.apache.openjpa.jdbc.meta.strats.XMLValueHandler"), then the
> XmlType column mapping is taking effect. Your entity annotation is using
> EnumValueHandler, yet the Xml column is generated in create table DDL.
>
> OPENJPA-1461 was resolving a problem for a Xml column mapping where Xml
> type was suffixed with default length (128) - resulted in SQLException. Your
> problem is a different issue - OPENJPA-1697 is addressing this issue.
>
> Could you attach your enum AuthorityValues source code to the jira issue ?
> So I can reproduce the problem.
> Thanks.
> Catalina
>
>
> On Fri, Jun 11, 2010 at 3:36 AM, Michele Rossi (JIRA) <ji...@apache.org>wrote:
>
>>
>> [
>> https://issues.apache.org/jira/browse/OPENJPA-1461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877772#action_12877772]
>>
>> Michele Rossi commented on OPENJPA-1461:
>> ----------------------------------------
>>
>> the result is the same even without the following annotations
>>
>> @Persistent
>> @Strategy("org.apache.openjpa.jdbc.meta.strats.EnumValueHandler")
>>
>>
>> I am still trying to find a way to disable the use of XmlType - I just
>> want it to be a string
>>
>> > Incorrect Oracle CREATE TABLE DDL for XML column
>> > ------------------------------------------------
>> >
>> > Key: OPENJPA-1461
>> > URL: https://issues.apache.org/jira/browse/OPENJPA-1461
>> > Project: OpenJPA
>> > Issue Type: Bug
>> > Components: jdbc
>> > Affects Versions: 2.0.0-M3
>> > Reporter: Catalina Wei
>> > Assignee: Catalina Wei
>> > Fix For: 2.0.0-beta
>> >
>> >
>> > A regression is found that the DDL for XML type is incorrectly generated
>> for Oracle backend.
>> > <openjpa-2.0.0-SNAPSHOT-rexported nonfatal general error>
>> org.apache.openjpa.persistence.PersistenceException: ORA-00907: missing
>> right parenthesis
>> > {stmnt 562241923 CREATE TABLE TORDER (oid NUMBER NOT NULL, amount
>> NUMBER, delivered NUMBER, shipAddress XMLType(255), version NUMBER,
>> CUSTOMER_COUNTRYCODE VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))}
>> [code=907, state=42000]
>> > at
>> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553)
>> > at
>> org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
>> > at
>> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:155)
>> > at
>> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)
>> > at
>> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:117)
>> > at
>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:207)
>> > at
>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:194)
>> > at
>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:152)
>> > at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:200)
>> > at
>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:151)
>> > at
>> org.apache.openjpa.persistence.xmlmapping.query.TestXMLCustomerOrder.setUp(TestXMLCustomerOrder.java:75)
>> > at junit.framework.TestCase.runBare(TestCase.java:125)
>> > at
>> org.apache.openjpa.persistence.test.AbstractPersistenceTestCase.runBare(AbstractPersistenceTestCase.java:501)
>> > at
>> org.apache.openjpa.persistence.test.AbstractPersistenceTestCase.runBare(AbstractPersistenceTestCase.java:477)
>> > 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.apache.openjpa.persistence.test.AbstractPersistenceTestCase.run(AbstractPersistenceTestCase.java:177)
>> > at junit.framework.TestSuite.runTest(TestSuite.java:208)
>> > at junit.framework.TestSuite.run(TestSuite.java:203)
>> > at
>> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
>> > 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: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00907:
>> missing right parenthesis
>> > {stmnt 562241923 CREATE TABLE TORDER (oid NUMBER NOT NULL, amount
>> NUMBER, delivered NUMBER, shipAddress XMLType(255), version NUMBER,
>> CUSTOMER_COUNTRYCODE VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))}
>> [code=907, state=42000]
>> > Correct DDL should be:
>> > CREATE TABLE TORDER (oid NUMBER NOT NULL, amount NUMBER, delivered
>> NUMBER, shipAddress XMLType, version NUMBER, CUSTOMER_COUNTRYCODE
>> VARCHAR2(255), CUSTOMER_ID NUMBER, PRIMARY KEY (oid))
>>
>> --
>> This message is automatically generated by JIRA.
>> -
>> You can reply to this email to add a comment to the issue online.
>>
>>
>