intégration Hibernate-JTA-JPA-EJB-GlassFish-MySQL: 1- Mise en veille prolongée JPA-EJB- GlassFish-MySql: Ce guide concerne l'intégration d'Hibernate.4.3.5 et d'EJB et de GlassFish.4.0 dans l'EDI NetBeans.8.0. Créer un projet web dans les haricots net et ajouter des fichiers jar de mise en veille prolongée au projet, un autre paramètre lié à la configuration de MySql et GlassFish est très simple, donc je ne décris pas dans cet article, puis de créer un fichier persistence.xml comme suit:
<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>
dans votre classe EJB (classe qui annotées avec @Stateless) pour créer une utilisation EntityManager syntaxe suivante:
EntityManagerFactory fem = Persistence.createEntityManagerFactory ("omidashouriPU"); EntityManager em = emf.createEntityManager(); em = emf.createEntityManager(); em.getTransaction(). Begin(); em.persist (YourEntityObject); em.getTransaction(). End(); Comme vous le savez lorsque vous utilisez "transaction-type =" Resource_Local ", vous devez gérer la transaction par vous-même, cela signifie que la gestion de l'ouverture et la fermeture de la transaction est de notre responsabilité.
2- Hibernate-JPA-JTA-EJB-GlassFish-MySql: Ce guide est pour l'intégration de Hibernate.4.3.5 et EJB et JTA et GlassFish.4.0 dans l'EDI NetBeans.8.0. Créer un projet web dans les beans nets (attention: ne faites pas de projet web avec maven car il y a un bug dans Netbeans.8.0 IDE) et ajouter des fichiers JAR hibernate au projet, d'autres paramètres liés à la configuration MySQL et glassfish est très simple (Il suffit de définir le pool de connexion et JDBC dans les ressources> JDBC: JDBC Connection Pools & Ressources JDBC, des conseils pour cela est dans le web si vous le recherchez) (attention: pour définir un JNDI correct, créez d'abord un projet temporaire qui dépend de JNDI comme projet JPA dans glassfish, puis copiez les paramètres créés dans Glassfish pour ce projet car il y a un bug dans glassfish quand vous allez obtenir un ping à MySQl dans la création de votre première connexion Piscine si vous créez par vous-même à l'intérieur du GlassFish) donc je ne décris pas dans cet article, puis de créer un fichier persistence.xml comme suit:
<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>
dans votre Classe EJB (classe annota ted avec @Stateless) pour créer une utilisation EntityManager syntaxe suivante:
@PersistenceContext(unitName = " omidashouriPU ")
EntityManager em;
em.persist(YourEntityObject);
Comme vous le savez lorsque vous utilisez « transaction type = « JTA », la gestion de la transaction ne sont pas avec vous, dire que, la gestion de l'ouverture et la fermeture de la transaction est la responsabilité du serveur d'application (Here GlassFish). En effet, si vous vérifiez votre persistence.xml dans la conception de mode, en face de la boîte déroulante du fournisseur de persistance vous pouvez voir hibernate est maintenant ajouté.
Cher lecteur, j'ai passé 3 jours pour résoudre ce problème, s'il vous plaît ajouter votre expérience à cet article afin qu'il complète, pour toute question, vous pouvez m'envoyer un courriel à [email protected]
Très utile, et plus facile à courir :) Merci! – Geoffroy