[
https://issues.apache.org/jira/browse/OPENJPA-2469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13872127#comment-13872127
]
Kevin Sutter commented on OPENJPA-2469:
---------------------------------------
Technically, the error you are receiving is coming from MySQL, not OpenJPA.
But, it's coming about due to the statement generated by OpenJPA and submitted
to MySQL for processing. I'm not that familiar with changing the Engine type
with MySQL, but I did find this reference in the OpenJPA documentation [1]:
"The default table types that MySQL uses do not support transactions, which
will prevent OpenJPA from being able to roll back transactions. Use the InnoDB
table type for any tables that OpenJPA will access. "
And, by default, OpenJPA uses the InnoDB table (engine) type.
According to this MySQL reference [2], there are several features missing with
the NDB table (engine) type that make it unsuitable for use with OpenJPA, or
any JPA provider. Namely, transactions, foreign keys, and joins.
[1]
http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#dbsupport_mysql_issues
[2]
http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-ndb-innodb-engines.html
> OpenJPA MappingTool gives encountered ENGINE
> --------------------------------------------
>
> Key: OPENJPA-2469
> URL: https://issues.apache.org/jira/browse/OPENJPA-2469
> Project: OpenJPA
> Issue Type: Bug
> Components: jdbc
> Affects Versions: 2.2.2
> Environment: Windows 8.1
> Glassfish 4.0 Open Source Edition Build 89
> MySQL Cluster 7.3.3
> ClusterJPA
> ClusterJ
> OpenJPA 2.2.2
> Maven 3
> Reporter: Jake Breindel
> Priority: Blocker
> Labels: mappingtool, schemabuilder
>
> I am trying to have OpenJPA build my schemas from my entity classes. I am
> using MySQL cluster so the engine type needs to be ndb however the mapping
> tool does not seem to like the ENGINE keyword when trying to create the
> tables.
> Here is the stack trace
> SEVERE: 133 core TRACE [admin-listener(2)] openjpa.jdbc.SQL - <t
> 1678323934, conn 634645525> executing stmnt 1903857975 CREATE TABLE
> channelEnvironmentMaps (cid INTEGER, enid INTEGER) ENGINE = ndb
> SEVERE: 134 core TRACE [admin-listener(2)] openjpa.jdbc.SQL - <t
> 1678323934, conn 634645525> [1 ms] spent
> SEVERE: Exception while deploying the app [app]
> SEVERE: Exception during lifecycle processing
> org.glassfish.deployment.common.DeploymentException: Syntax error:
> Encountered "ENGINE" at line 1, column 65. {stmnt 1903857975 CREATE TABLE
> channelEnvironmentMaps (cid INTEGER, enid INTEGER) ENGINE = ndb} [code=20000,
> state=42X01]
> at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:559)
> at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:455)
> at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:160)
> at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:164)
> at
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:122)
> at
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:209)
> at
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154)
> at
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)
> at
> org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451)
> at
> org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510)
> at
> org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492)
> at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:395)
> at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)