J'ai configuré un projet en utilisant à la fois Jdo et Jpa. J'ai utilisé l'annotation Jpa pour déclarer mon entité. Ensuite, j'ai configuré mon testCases basé sur LocalTestHelper
(à partir de la documentation de Google App Engine). Lorsque je lance le test, un appel à makePersistent
de Jdo:PersistenceManager
est parfaitement OK; un appel à persist
de Jpa:EntityManager
a soulevé une erreur:Google App Engine: JDO fait le travail, JPA ne
java.lang.IllegalArgumentException: Type ("org.seamoo.persistence.jpa.model.ExampleModel") is not that of an entity but needs to be for this operation
at org.datanucleus.jpa.EntityManagerImpl.assertEntity(EntityManagerImpl.java:888)
at org.datanucleus.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:385)
Caused by: org.datanucleus.exceptions.NoPersistenceInformationException: The class "org.seamoo.persistence.jpa.model.ExampleModel" is required to be persistable yet no Meta-Data/Annotations can be found for this class. Please check that the Meta-Data/annotations is defined in a valid file location.
at org.datanucleus.ObjectManagerImpl.assertClassPersistable(ObjectManagerImpl.java:3894)
at org.datanucleus.jpa.EntityManagerImpl.assertEntity(EntityManagerImpl.java:884)
... 27 more
Comment peut-il être le cas? est Ci-dessous le lien vers le code source compacte des projets Maven qui reproduisent ce problème: Mise à jour: http://seamoo.com/jpa-bug-reproduce-compact.tar.gz
Execute l'objectif de test Maven sur le parent pom vous remarquerez que les 3/4 des tests de org.seamoo .persistence.jdo.JdoGenericDAOImplTest transmis, alors que tous les tests de org.seamoo.persistence.jpa.JpaGenericDAOImplTest ont échoué.
Salut, désolé pour tout inconvénient. J'ai mis à jour mon code source et supprimer tout le code qui est hors de la portée du problème. Au fait, ce qui m'intéressait, c'est que: J'ai utilisé l'annotation JPA pour mes entités, mais l'API JDO fonctionne bien avec ces entités, contrairement à l'API JPA. Comme vous pouvez le voir dans le code source, 'ExampleModel' a été amélioré par le plugin maven datanucleus. Même si, étant donné que j'ai manqué l'une des données requises, pourquoi JDO fonctionne-t-il? –
JDO fonctionne (avec entrée JDO ou JPA), JPA fonctionne (avec entrée JDO ou JPA). Toutes ces personnes sur le forum GAE/J en utilisant JPA ne peuvent pas se tromper :-P. Le test est "nettoyé"? Je m'attendrais à une classe de modèle et une main, et persistence.xml. C'est tout ce dont il a besoin. Non, je ne vois rien sur ce qui a été amélioré; votre journal vous le dit. Amélioré vos cours? (pour JPA?). Quand vous courez, qu'y avait-il dans le CLASSPATH? Le journal (niveau DEBUG) vous dit tout cela, il serait donc logique de le regarder. – DataNucleus