Comment utiliser persistence.xml et hibernate.cfg.xml dans JUnit tests via eclipse?
J'ai été à la recherche d'une réponse pendant un temps assez long avant de venir ici et de poser cette question.
Mon problème est très simple : je ne peux pas exécuter de test JUnit lors de l'utilisation de l'APP de l'Entité Gestionnaire de l'API. Il semble que mon test n'est pas la lecture de la persistence.xml
fichier.
Quand je l'appelle new Configuration().configure().buildSessionFactory()
, il fonctionne comme un charme, mais une exception est levée lors de l'appel de Persistence.createEntityManagerFactory("myapp")
est:
javax.la persistance.PersistenceException: Pas de fournisseur de Persistance pour
EntityManager nommé myapp à
javax.la persistance.La persistance.createEntityManagerFactory(Persistance.java:69)
au
javax.la persistance.La persistance.createEntityManagerFactory(Persistance.java:47)
au com.myapp.Test01.setUpBeforeClass(Test01.java:22)
Mon JavaSE projet a la structure suivante :
myapp
++src/main/java
++com.myapp.model
++//My entity classes are here
++src/test/java
++com.myapp
++Test01.java
++src/main/resources
++hibernate.cfg.xml
++META-INF
++persistence.xml
et persistence.xml
ressemble:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="2.0">
<persistence-unit name="myapp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"></property>
</properties>
</persistence-unit>
</persistence>
Avez-vous une idée de comment résoudre ce problème ?
Merci beaucoup pour votre aide.
Vous devez vous connecter pour publier un commentaire.
J'imagine que
org.hibernate.ejb.HibernatePersistence
n'est pas sur votre classpath. Ce n'est pas dans les principaux Hibernate pot, il est en veille prolongée-entitymanager ou un bocal.Quelques expériences serait à faire, dans le code immédiatement avant l'appel à
Persistence.createEntityManagerFactory()
:Et:
Il serait également sage de vérifier cette Éclipse est la copie de vos ressources; faire un Projet > Nettoyer et puis regardez dans votre Eclipse construire répertoire de sortie pour voir si persistence.xml est là où vous les attendez. J'ai parfois courir dans les cas où l'Éclipse ne copie pas les ressources pour une raison ou pour une autre.
Mettre la configuration dans
src/test/resources/META-INF
.src/test/resources/META-INF/persistence.xml
.