java - 运行 SynchronizeMappings 时出现 PersistenceException

标签 java mysql eclipse openjpa

<分区>

我有一个使用 apache openJPA 的 eclipse java 项目。 eclipse 是否需要清理某种缓存?

我有一个类,UsaState ...映射到 USA_STATE 表。我已经从数据库、persistence.xml、项目、映射中的引用中删除了它……没有其他引用的项目,我有这个错误:

Exception in thread "main"  org.apache.openjpa.persistence.PersistenceException:
    You have an error in your SQL syntax; check the manual that
    corresponds to your MySQL server version for the right syntax to use
    near 'TYPE = innodb' at line 1 {stmnt 7860099
        CREATE TABLE USA_STATE (
            ID BIGINT NOT NULL AUTO_INCREMENT,
            NAME VARCHAR(255),
            ADDRESS BIGINT,
            PRIMARY KEY (ID)
        ) TYPE = innodb
    } [code=1064, 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:159)
    at org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119)
    at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189)
    at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145)
    at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56)
    at TestMain.main(TestMain.java:18)
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: You have
    an error in your SQL syntax; check the manual that corresponds to
    your MySQL server version for the right syntax to use near 'TYPE =
    innodb' at line 1 {stmnt 7860099
        CREATE TABLE USA_STATE (
            ID BIGINT NOT NULL AUTO_INCREMENT,
            NAME VARCHAR(255),
            ADDRESS BIGINT,
            PRIMARY KEY (ID)
        ) TYPE = innodb
    } [code=1064, state=42000]
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192)
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:57)
    at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:762)
    at org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:114)
    at org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1191)
    at org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949)
    at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526)
    at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344)
    at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321)
    at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:501)
    ... 9 more

问题出在哪里?持久性以何种方式记住该表或实体? 需要一些干净的吗?我已经清理了项目几次...

谢谢

最佳答案

请移动到更新版本的 JPA >= 2.0.0。

https://issues.apache.org/jira/browse/OPENJPA-1530

关于java - 运行 SynchronizeMappings 时出现 PersistenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7404872/

相关文章:

java - 从另一个静态变量构造函数调用静态变量

php - 在 POST 上生成并保存序列号

php - 连接多个MySQL数据库,连接则加入Array,连接不上则跳过

eclipse - 如何使用快捷方式切换到 Eclipse 中的其他编辑器 Pane ?

java - Eclipse 语法着色插件

java - 在vaadin中调整CSS变化的选择方法是什么?

java - 如何从键盘生成无限字符串

Java:使用扫描仪时总是收到 NoSuchElementException

php - 带有 xampp 服务器的 Android 应用程序

java - 找不到记录器的附加程序(selenium webdriver+testng)