Java 运行SynchronizeMappings时出现PersistenceException
我有一个使用apacheJava 运行SynchronizeMappings时出现PersistenceException,java,mysql,eclipse,openjpa,Java,Mysql,Eclipse,Openjpa,我有一个使用apacheopenJPA的eclipsejava项目。eclipse是否有需要清理的缓存 我有一个类,UsaState…映射到USA\u STATE表。我已将其从数据库、从persistence.xml、从项目、从映射中的引用中删除…没有其他引用的项目,我有以下错误: Exception in thread "main" org.apache.openjpa.persistence.PersistenceException: You have an error in yo
openJPA的eclipsejava项目。eclipse是否有需要清理的缓存
我有一个类,UsaState…映射到USA\u 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
线程“main”org.apache.openjpa.persistence.PersistenceException中的异常:
您的SQL语法有错误;检查手册
对应于您的MySQL服务器版本,以便使用正确的语法
第1行{stmnt 7860099'附近的'TYPE=innodb'
创建表格USA_状态(
ID BIGINT非空自动增量,
名称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.jdbbrokerfactory.synchronizeMappings(jdbbrokerfactory.java:159)
位于org.apache.openjpa.jdbc.kernel.jdbbrokerfactory.newBrokerImpl(jdbbrokerfactory.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服务器版本需要正确的语法才能使用“near”类型=
innodb'位于第1行{stmnt 7860099
创建表格USA_状态(
ID BIGINT非空自动增量,
名称VARCHAR(255),
地址:BIGINT,
主键(ID)
)类型=innodb
}[代码=1064,州=42000]
位于org.apache.openjpa.lib.jdbc.loggingConnectionCorator.wrap(loggingConnectionCorator.java:192)
登录org.apache.openjpa.lib.jdbc.loggingConnectionCorator.access$700(loggingConnectionCorator.java:57)
位于org.apache.openjpa.lib.jdbc.LoggingConnectionCorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionCorator.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更多
问题出在哪里?持久性以何种方式可以记住该表或实体?
需要一些干净的吗?我已经清理了一些项目的时间
谢谢尝试重新启动数据库或执行命令刷新表
尝试重新启动数据库或执行命令刷新表
请移动到JPA>=2.0.0的较新版本
请转到JPA>=2.0.0的更新版本
我已经切换到2.1.1…现在运行时增强出现了一些问题,我正在解决,但是…项目中怎么可能不存在EntityManagerFactory或waht记忆类?无论如何,谢谢你,请尝试重新表述你的问题,这对我来说没有任何意义?我已经切换到2.1.1…现在运行时增强出现了一些问题,我正在解决,但是…怎么可能项目中已经不存在EntityManagerFactory或waht Membered类?无论如何,谢谢。请尝试重新表述您的问题,它对我没有任何意义?格式化后,它看起来像。问题是无意义的,但发布的堆栈是一个已修复的有效问题。格式化后,它看起来像。问题是无意义的,但发布的堆栈是一个已修复的有效问题。