2011-09-13 1 views
2

J'ai un projet java eclipse utilisant apache openJPA. Est-ce que eclipse a besoin d'une sorte de cache pour être propre?PersistenceException lors de l'exécution de SynchronizeMappings

J'ai eu une classe, UsaState ... mappée au tableau USA_STATE. Je l'ai enlevé de la base de données, de persistence.xml, du projet, de références dans les correspondances ... il n'y a pas d'autre projet référencé et j'ai cette erreur:

 
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 

Où pourrait être le problème? De quelle manière la persistance pourrait-elle rappeler cette table ou entité? Y a-t-il besoin de nettoyage? Je l'ai déjà nettoyé projet quelques fois ...

Merci

+0

Après le formatage, il ressemble à une [erreur de syntaxe] (http://dev.mysql.com/doc/refman/5.5/en/create-table.html). – trashgod

+1

La question est absurde, mais la pile affichée est un problème valide qui a déjà été corrigé. – Rick

Répondre

-1

Essayez de redémarrer votre base de données ou exécuter la commande flush tables.

1

Veuillez passer à une version plus récente de JPA> = 2.0.0.

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

+0

J'ai changé pour 2.1.1 ... Maintenant il y a un problème avec l'amélioration de l'exécution, je le résous, mais ... comment il était possible que EntityManagerFactory ou waht se souvient déjà de la classe n'existe pas dans le projet? merci quand même – falconseye

+0

Veuillez essayer de reformuler votre question, cela n'a aucun sens pour moi? – Rick

Questions connexes