[ 
https://issues.apache.org/jira/browse/OPENJPA-1461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12877771#action_12877771
 ] 

Michele Rossi commented on OPENJPA-1461:
----------------------------------------

Hi,
I think this is still broken even in the very latest 2.1.0-SNAPSHOT (I've built 
it myself from SVN).

Stacktrace:

Caused by: <openjpa-2.1.0-SNAPSHOT-r422266:953182M nonfatal general error> 
org.apache.openjpa.persistence.PersistenceException: ORA-00907: missing right 
parenthesis
 {stmnt 13803851 CREATE TABLE authority (ID NUMBER NOT NULL, authorityName 
XMLType(128) NOT NULL, PRIMARY KEY (ID))} [code=907, state=42000]
        at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:556)
        at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:456)
        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:199)
        at 
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
        at 
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:151)
        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 
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.invokeProxyMethod(AbstractEntityManagerFactoryBean.java:423)
        at 
org.springframework.orm.jpa.AbstractEntityManagerFactoryBean$ManagedEntityManagerFactoryInvocationHandler.invoke(AbstractEntityManagerFactoryBean.java:485)
        at $Proxy20.createEntityManager(Unknown Source)
        at 
com.iontrading.ionweb.persistence.SchemaCreationHandler.start(SchemaCreationHandler.java:181)
        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 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1536)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
        at 
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
        ... 27 more
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: ORA-00907: 
missing right parenthesis
 {stmnt 13803851 CREATE TABLE ion_authority (ID NUMBER NOT NULL, authorityName 
XMLType(128) NOT NULL, PRIMARY KEY (ID))} [code=907, state=42000]
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:273)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:257)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:70)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:967)
        at 
org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:136)
        at 
org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1200)
        at 
org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:956)
        at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:533)
        at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:348)
        at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:325)
        at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:504)
        ... 50 more


The class I am trying to persist:
 */
@Entity
@Table(name="authority")
@NamedQueries( { 
                @NamedQuery(name = "AllIonAuthorities", query = "SELECT x FROM 
IonAuthority x") 
})
public class Authority {
@Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "ID")
        private Integer id;

        @Enumerated( EnumType.STRING ) 
        @Column(nullable=false, length=128, updatable=true, insertable=true)
        @Persistent
        @Strategy("org.apache.openjpa.jdbc.meta.strats.EnumValueHandler")
        private AuthorityValues authorityName;


-----------

@XmlType(name = "IonAuthorityValues")
@XmlEnum
public enum AuthorityValues {

    AUTH1,
    AUTH2,


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

Reply via email to