10
votes

Ne peut pas obtenir JPA2 en cours d'exécution avec hibernate et maven

a essayé toute la journée et googler le **** sur le Web ... en vain. Vous êtes mon dernier espoir:

Voici mon code: P>

L'entité: p>

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.UnsupportedOperationException: The user must supply a JDBC connection
 at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)
 at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
 at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
 at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)


0 commentaires

3 Réponses :


19
votes

Hibernate EntityManager 3.4.0.ga est Non Strard> une implémentation JPA 2.0, de sorte qu'il ne prendra pas en charge la normalisée javax.persistence. * code> propriétés dans la persistance .xml code> (D'où l'exception quant à la connexion JDBC n'est fournie). Pour JPA 2.0, vous avez besoin d'hibernation EM 3.5.1-finale. Ci-dessous un simple pom avec la bonne dépendance:

<!-- Bean Validation API and RI -->
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.0.0.GA</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.0.2.GA</version>
    <scope>runtime</scope>
</dependency>


2 commentaires

Merci beaucoup! Ça marche! Dieu sauvegarder Stackoverflow et ses participants!


Comment savez-vous quel validateur Hibernate est valide pour Hibernate 3.5.1-Finale?



0
votes

Une chose importante que je n'ai pas trouvée dans mon prédécesseur n'a pas mentionné, mais semble être cruciale consiste à ajouter à la dépendance hibernée fournie forte> portée. De sorte que la guerre / l'oreille résultante n'est pas ajoutée.

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.5.1-Final</version>
    <scope>provided</scope>
</dependency>


1 commentaires

Généralement serveur d'applications, dans mon cas, c'est à ./jboss-6.0.0/common/lib/hibernate-enttitymanager.jar



3
votes

Si vous n'utilisez pas de dépendance maven et utilisez uniquement les paramètres Eclipse ClassPath, il vous suffit de mettre les fichiers JAR ci-dessus dans la classe de classe de Hibernate 3.5 et plus

1) Hibernate Core Jar

2) JAR d'annotations Hibernate

3) JAR de journalisation JBoss

4) JAR Gestionnaire d'entités hibernate

API JPA 2. JAR (c'est inclus dans la distribution hibernate).

J'ai eu des problèmes similaires et j'ai utilisé cette approche et cela a fonctionné. Obtenir tout le pot de dépendance de la même version de la distribution est la meilleure idée. Si vous trouvez une erreur, vous pouvez le trouver dans les journaux et continuer à mettre le pot dans la classe de classe


0 commentaires