2009-12-03 30 views
6

Tengo una definición de persistencia de trabajo que funciona en pruebas de nivel de Java. Ahora quiero incorporar eso en una aplicación web que define la conexión de la base de datos como JNDI en el contexto.xml. ¿Qué debo cambiar para que funcione con JNDI en lugar de persistence.xml o al menos obtener la información de allí?¿Cómo configurar JPA para usar JNDI?

+0

¿Lograste hacerlo? – test30

+1

Sí, pero mi respuesta con los detalles se eliminó sin una buena razón. Todo se reduce a utilizar fuentes de datos JTA. Ver este http://docs.jboss.org/hibernate/stable/entitymanager/reference/en/html/configuration.html. – javydreamercsw

Respuesta

1

Su persistence.xml principio debería ser algo como esto (usando EclipseLink como aplicación), para una MINOMBRE nombre JDBC/ 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> 

Por supuesto que debe establecer la configuración adecuada para tu ambiente En el ejemplo utilizo un DataSource que no es JTA : de acuerdo con uno de sus comentarios, parece que su DataSource no es compatible con JTA. Para Hibernate, el proveedor de persistencia debe ser diferente.

0

debe usar persistence.xml cuando usa JPA. porque JPA debe verificar persistence.xml. para que pueda usar persistence.xml y jndi al mismo tiempo.

Cuestiones relacionadas