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