J'ai une définition de persistance de travail qui fonctionne sur les tests de niveau Java. Maintenant, je veux incorporer cela dans une application web qui définit la connexion à la base de données comme JNDI dans le context.xml. Qu'est-ce que j'ai besoin de changer pour le faire fonctionner avec le JNDI au lieu du persistence.xml ou au moins obtenir l'infor à partir de là?Comment configurer JPA pour utiliser JNDI?
6
A
Répondre
1
Votre persistence.xml début devrait être quelque chose comme ça (en utilisant EclipseLink comme la mise en œuvre), pour une jdbc/MYNAME Nom JNDI:
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
<persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>java:comp/env/jdbc/MYNAME</non-jta-data-source>
<class>org.test.entity.MyEntity</class>
...
</persistence-unit>
<persistence>
Bien sûr, vous devez définir la configuration appropriée pour votre environnement. Dans l'exemple j'utilise un non-JTA DataSource: selon un de vos commentaires, il semble que votre DataSource n'est pas compatible JTA. Pour Hibernate, le fournisseur de persistance doit être différent.
0
Vous devez utiliser le fichier persistence.xml lorsque vous utilisez JPA. car JPA doit vérifier le fichier persistence.xml. donc vous pouvez utiliser persistence.xml et jndi en même temps.
Avez-vous réussi à le faire? – test30
Oui mais ma réponse avec les détails a été effacée sans raison valable. Il revient à utiliser les sources de données JTA. Voir http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html. – javydreamercsw