【问题标题】:PersistenceException when running SynchronizeMappings [closed]运行 SynchronizeMappings 时出现 PersistenceException [关闭]
【发布时间】:2011-11-16 07:40:55
【问题描述】:

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

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

线程“主”org.apache.openjpa.persistence.PersistenceException 中的异常: 您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 在第 1 行的“TYPE = innodb”附近 {stmnt 7860099 创建表 USA_STATE ( ID BIGINT NOT NULL AUTO_INCREMENT, 名称 VARCHAR(255), 地址 BIGINT, 主键 (ID) ) 类型 = innodb } [代码=1064,状态=42000] 在 org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553) 在 org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453) 在 org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159) 在 org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:119) 在 org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:189) 在 org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) 在 org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) 在 org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) 在 org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) 在 TestMain.main(TestMain.java:18) 引起:org.apache.openjpa.lib.jdbc.ReportingSQLException:你有 SQL 语法错误;检查对应的手册 您的 MySQL 服务器版本,以便在 'TYPE = 附近使用正确的语法 innodb' 在第 1 行 {stmnt 7860099 创建表 USA_STATE ( ID BIGINT NOT NULL AUTO_INCREMENT, 名称 VARCHAR(255), 地址 BIGINT, 主键 (ID) ) 类型 = innodb } [代码=1064,状态=42000] 在 org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:192) 在 org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access 700 美元(LoggingConnectionDecorator.java:57) 在 org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:762) 在 org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:114) 在 org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1191) 在 org.apache.openjpa.jdbc.schema.SchemaTool.createTable(SchemaTool.java:949) 在 org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:526) 在 org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:344) 在 org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:321) 在 org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:501) ... 9 更多

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

谢谢

【问题讨论】:

  • 格式化后看起来像syntax error
  • 这个问题是无意义的,但发布的堆栈是一个已经修复的有效问题。

标签: java mysql eclipse openjpa


【解决方案1】:

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

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

【讨论】:

  • 我已经切换到 2.1.1 ...现在运行时增强存在一些问题,我正在解决它,但是 ....EntityManagerFactory 或 waht 记住的类怎么可能已经没有了项目中不存在?还是谢谢
  • 请尝试改写您的问题,这对我没有任何意义?
【解决方案2】:

尝试重新启动数据库或执行命令flush tables

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-12
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2013-02-10
    • 1970-01-01
    相关资源
    最近更新 更多