Integración Hibernate-JTA-APP-EJB-GlassFish-MySQL: 1- Hibernate-APP-EJB- GlassFish-MySql: Esta guía es para integrar hibernate.4.3.5 y EJB y GlassFish.4.0 en NetBeans.8.0 IDE. Crear un proyecto web en los granos de red y añadir archivos jar de hibernación al proyecto, otra configuración relacionada con la configuración de MySQL y GlassFish es muy simple, así que no describo en este artículo a continuación, crear el archivo persistence.xml de la siguiente manera:
<persistence-unit name="omidashouriPU" transaction-type="Resource_Local">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/YourSchemaName"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="yourpassword"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
en su clase EJB (clase que anota con @Stateless) para la creación de empleo EntityManager siguiente sintaxis:
EntityManagerFactory fem = Persistence.createEntityManagerFactory ("omidashouriPU"); EntityManager em = emf.createEntityManager(); em = emf.createEntityManager(); em.getTransaction(). Begin(); em.persist (YourEntityObject); em.getTransaction(). End();
Como usted sabe cuando está utilizando "transaction-type =" Resource_Local ", usted tiene que administrar la transacción usted mismo, significa que, la administración de la apertura y cierre de la transacción es nuestra responsabilidad.
2- Hibernate-JPA-JTA-EJB-GlassFish-MySql: Esta guía es para integrar hibernate.4.3.5 y EJB y JTA y GlassFish.4.0 en NetBeans.8.0 IDE. Crea un proyecto web en beans netos (atención: no hagas un proyecto web con maven porque hay un error en Netbeans.8.0 IDE) y agregue archivos hibernate jar al proyecto, otra configuración relacionada con la configuración de MySql y glassfish es muy simple (solo defina Connection Pool y JDBC en Resources> JDBC: JDBC Connection Pools & JDBC Resources, orientación para eso está en la web si lo busca) (atención: para definir un JNDI correcto, primero cree un proyecto temporal que dependa de JNDI como proyecto JPA en glassfish, luego copie la configuración que se crea en Glassfish para este Proyecto porque hay un error en glassfish cuando se van a poner un ping a MySQL en la creación de su primer conjunto de conexiones si se crea por sí mismo dentro de la glassfish) por lo que no describo en este artículo a continuación, crear el archivo persistence.xml de la siguiente manera:
<persistence-unit name="omidashouriPU" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>jdbc/yourJNDI (which you defined in glassfish) </jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/YourSchemaName"/>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="yourpassword"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
en su Clase EJB (clase que anota Ted con @Stateless) para la creación de empleo EntityManager siguiente sintaxis:
@PersistenceContext(unitName = " omidashouriPU ")
EntityManager em;
em.persist(YourEntityObject);
Como saber cuando se está utilizando “tipo de transacción = 'JTA', la gestión de la transacción no está contigo, quiere decir que, la gestión de apertura y el cierre de la transacción es responsabilidad del servidor de aplicaciones (Here GlassFish). De hecho, si comprueba su persistence.xml en modo de diseño, frente al cuadro desplegable del proveedor de persistencia puede ver que ahora se agrega hibernación.
Estimado lector, He gastado 3 días para resolver este problema, agregue su experiencia a este artículo para completarlo, para cualquier pregunta puede enviarme un correo electrónico a [email protected]
Muy útil y más fácil de ejecutar :) ¡Gracias! – Geoffroy