<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Jpa on Java &amp; Moi</title><link>https://javaetmoi.com/tags/jpa/</link><description>Recent content in Jpa on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Mon, 16 Jun 2025 06:57:01 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/jpa/feed.xml" rel="self" type="application/rss+xml"/><item><title>De Spring Data JPA à jOOQ</title><link>https://javaetmoi.com/2025/06/de-spring-data-jpa-a-jooq/</link><pubDate>Mon, 16 Jun 2025 06:57:01 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2580</guid><description>&lt;p&gt;Lors de la conférence Devoxx France 2025, j’ai participé à un hands-on lab de 2h intitulé &lt;a href="https://www.devoxx.fr/agenda-2025/talk/sortir-des-orms-avec-jooq/"&gt;Sortir des ORMs avec jOOQ&lt;/a&gt;. Acronyme de « &lt;strong&gt;Java Object Oriented Querying&lt;/strong&gt; », &lt;strong&gt;jOOQ&lt;/strong&gt; se présente comme une &lt;strong&gt;alternative à JPA&lt;/strong&gt; permettant d’ &lt;strong&gt;écrire des requêtes SQL&lt;/strong&gt; en Java via une &lt;strong&gt;fluent API&lt;/strong&gt;. Animé par Sylvain Decout et Samuel Lefebvre, cet atelier visait à migrer une application Spring Boot / JPA vers jOOQ à l’aide du &lt;strong&gt;starter Spring Boot&lt;/strong&gt; pour jOOQ. Pour les curieux, le repo de l’atelier est disponible sur Github : &lt;a href="https://github.com/sylvaindecout/jooq-handson"&gt;jooq-handson&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Fort de cette découverte, je me suis à mon tour prêté à l’exercice de migrer vers jOOQ la couche de persistance Spring Data JPA de l’application démo Spring Petclinic. Un nouveau fork est né : &lt;a href="https://github.com/spring-petclinic/spring-petclinic-jooq"&gt;&lt;strong&gt;spring-petclinic-jooq&lt;/strong&gt;&lt;/a&gt;. Bienvenue à ce dernier dans la communauté Spring Petclinic.&lt;/p&gt;
&lt;p&gt;L’usage de jOOQ se rapproche de l’utilisation de JdbcTemplate. Le développeur maitrise le nombre de requêtes envoyées à la base de données relationnelle. Ce qui les différencie, c’est la syntaxe : pas de SQL, mais une &lt;strong&gt;API Java fluide&lt;/strong&gt; et &lt;strong&gt;type-safe&lt;/strong&gt; spécifique à jOOQ qu’il va falloir appréhender. Rassurez-vous, cette API se rapproche du SQL : on y retrouve les mots clés &lt;strong&gt;select&lt;/strong&gt;, &lt;strong&gt;update&lt;/strong&gt;, &lt;strong&gt;insertInto&lt;/strong&gt;, &lt;strong&gt;where&lt;/strong&gt;, &lt;strong&gt;from&lt;/strong&gt;, &lt;strong&gt;join&lt;/strong&gt;, &lt;strong&gt;on&lt;/strong&gt;, &lt;strong&gt;as&lt;/strong&gt;… A ceux-ci, on ajoute des mots clés spécifiques à jOOQ : &lt;strong&gt;paginate&lt;/strong&gt;, &lt;strong&gt;fetch&lt;/strong&gt;, &lt;strong&gt;convertFrom&lt;/strong&gt; … La &lt;a href="https://www.jooq.org/learn/"&gt;&lt;strong&gt;documentation&lt;/strong&gt;&lt;/a&gt; de jOOQ est très &lt;strong&gt;complète&lt;/strong&gt;. On y apprend comment écrire des requêtes complexes à base de window function ou de Common Table Expressions (CTE) et comment utiliser des fonctionnalités avancées de SQL que peu de frameworks ORM supportent nativement : &lt;a href="https://www.jooq.org/doc/latest/manual/sql-building/column-expressions/json-functions/"&gt;JSON functions&lt;/a&gt;, &lt;a href="https://blog.jooq.org/how-to-use-sql-pivot-to-compare-two-tables-in-your-database/"&gt;PIVOT&lt;/a&gt;, &lt;a href="https://www.jooq.org/doc/latest/manual/sql-building/sql-statements/merge-statement/"&gt;MERGE&lt;/a&gt;, &lt;a href="https://www.jooq.org/doc/latest/manual/sql-building/sql-statements/select-statement/set-operations/set-operation-union/"&gt;UNION&lt;/a&gt; …&lt;/p&gt;
&lt;p&gt;Cet article a pour objectif d’expliquer les &lt;strong&gt;étapes&lt;/strong&gt; adoptées pour &lt;strong&gt;migrer l’implémentation Spring Data JPA des repository vers jOOQ&lt;/strong&gt;. Des exemples de code avant / après y sont proposés.&lt;/p&gt;</description></item><item><title>Up-to-date Spring Framework Petclinic presentation</title><link>https://javaetmoi.com/2017/02/spring-framework-petclinic-presentation/</link><pubDate>Fri, 10 Feb 2017 07:40:20 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1672</guid><description>&lt;p&gt;Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-­oriented applications.
The « canonical » version of Spring Petclinic is based on Spring Boot and Thymeleaf. But many forks exists: distributed version (microservices) built with Spring Cloud, React, AngularJS. The fork we are talking about is named &lt;strong&gt;Spring&lt;/strong&gt; &lt;strong&gt;Framework&lt;/strong&gt; &lt;strong&gt;Petclinic&lt;/strong&gt;. It maintains a Petclinic version both with a &lt;strong&gt;plain old Spring Framework configuration&lt;/strong&gt; and a &lt;strong&gt;3-layer architecture&lt;/strong&gt; (i.e. presentation &amp;ndash;&amp;gt; service &amp;ndash;&amp;gt; repository).&lt;/p&gt;</description></item><item><title>Spring Core 4.2 Certification Mock Exam</title><link>https://javaetmoi.com/2016/01/spring-core-4-2-certification-mock-exam/</link><pubDate>Mon, 18 Jan 2016 07:05:32 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1508</guid><description>&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="spring-pro-cert"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2016/01/spring-pro-cert.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
Four years ago, I’ve published a first &lt;a href="http://javaetmoi.com/2012/02/core-spring-3-0-certification-mock-exam/"&gt;mock exam for the Spring Core 3.0 Certification&lt;/a&gt;. Encouraged by Michael and Alan, I’ve updated this &lt;strong&gt;free&lt;/strong&gt; &lt;strong&gt;mock exam&lt;/strong&gt; for the &lt;a href="http://pivotal.io/academy#certification"&gt;Spring Professional certification based on the Spring Core 4.2 course&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;According to the &lt;a href="wp-content/uploads/2016/01/Core-Spring-4.2-Certification-Study-Guide.pdf"&gt;Core Spring 4.2 Certification Study Guide&lt;/a&gt;, 3 new topics have been added to the &lt;strong&gt;Spring Core 4.2 mock exam&lt;/strong&gt;: &lt;strong&gt;REST&lt;/strong&gt;, &lt;strong&gt;Microservices&lt;/strong&gt; and &lt;strong&gt;Spring Cloud&lt;/strong&gt;. They replace older topics: JMX, JMS and Remoting.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="spring-pro-cert"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2016/01/spring-pro-cert.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>18 prises de notes à Devoxx France 2015</title><link>https://javaetmoi.com/2015/04/18-prises-de-notes-a-devoxx-france-2015/</link><pubDate>Tue, 21 Apr 2015 06:03:20 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1356</guid><description>&lt;p&gt;En attendant que les vidéos des &lt;a href="http://cfp.devoxx.fr/2015/index.html"&gt;différentes conférences de l’édition 2015&lt;/a&gt; de Devoxx France soient mises en ligne sur &lt;a href="http://www.parleys.com/"&gt;Parleys&lt;/a&gt; et en complément de certains supports déjà mis en ligne par certains Speakers, je mets librement à votre disposition les différentes notes que j’ai pu prendre sur mon laptop.&lt;/p&gt;
&lt;p&gt;Les sujets sont variés : du &lt;strong&gt;Machine Learning&lt;/strong&gt; avec Watson, Spark et MMLib, du &lt;strong&gt;Reactive Programming&lt;/strong&gt; avec RxJava et Vert.x, du &lt;strong&gt;Java 9&lt;/strong&gt;, du &lt;strong&gt;Spring 4.1&lt;/strong&gt; ou bien encore du Docker.&lt;/p&gt;
&lt;p&gt;Certaines notes pourront être lues de manière autonome ; je pense par exemple au quickie &lt;a href="wp-content/uploads/2015/04/Devoxx_France_2015-Strat%C3%A9gie_de_mise_en_place_de_revues_de_code.pdf"&gt;Stratégie de mise en place de revues de code&lt;/a&gt; et à la conférence &lt;a href="ploads/2015/04/Devoxx_France_2015-Livrer_chaque_jour_ce_qui_est_pret.pdf"&gt;Livrer chaque jour ce qui est prêt !.&lt;/a&gt; Pour être exploitables en l’état, d’autres notes demanderont à ce que vous ayez assisté à la conférence ou que vous ayez pu récupérer les supports de présentation.&lt;/p&gt;
&lt;p&gt;&lt;a href="wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Keynote des organisateurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="Keynote des organisateurs"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2015/04/Keynote-des-organisateurs.jpg"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Persistance de données avec Spring</title><link>https://javaetmoi.com/2014/11/persistance-spring-jdbc-hibernate-jpa/</link><pubDate>Fri, 21 Nov 2014 06:14:42 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1247</guid><description>&lt;p&gt;Dans le &lt;a href="http://javaetmoi.com/2014/11/workshop-spring-1-offre-spring-et-bases/" title="L’offre Spring et les bases"&gt;1er workshop&lt;/a&gt;, je vous présentais l&amp;rsquo;écosystème de Spring et les bases du conteneur léger.
Ce second workshop se focalise sur une couche centrale de la majorité des applications d&amp;rsquo;entreprise : &lt;strong&gt;la persistance de données&lt;/strong&gt;. Vous verrez que Spring facilite la &lt;strong&gt;gestion des exceptions&lt;/strong&gt; et des &lt;strong&gt;transactions&lt;/strong&gt;. En supprimant le boilerplate code, Spring facilite également l&amp;rsquo;accès aux différentes technologies de persistance : que ce soit &lt;strong&gt;JDBC&lt;/strong&gt;, &lt;strong&gt;Hibernate&lt;/strong&gt; ou bien encore &lt;strong&gt;JPA&lt;/strong&gt;. Enfin, nous verrons comment les projets &lt;strong&gt;Spring Data JPA&lt;/strong&gt; et &lt;strong&gt;QueryDSL&lt;/strong&gt; simplifient encore davantage l&amp;rsquo;écriture de la couche d&amp;rsquo;accès aux données.&lt;/p&gt;
&lt;p&gt;Voici le support de présentation du workshop sur Spring que j’ai animé en décembre 2011 au sein de ma société et que j’ai réactualisé avant sa diffusion sur Slideshare :&lt;/p&gt;</description></item><item><title>Configurez Spring en Java</title><link>https://javaetmoi.com/2014/06/spring-framework-java-configuration/</link><pubDate>Mon, 16 Jun 2014 05:07:42 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1122</guid><description>Dans ce billet, nous verrons comment &lt;strong&gt;configurer en Java&lt;/strong&gt; le &lt;strong&gt;contexte Spring&lt;/strong&gt; d’une application basée sur &lt;strong&gt;Spring MVC&lt;/strong&gt;, &lt;strong&gt;Spring Security&lt;/strong&gt;, &lt;strong&gt;Spring Data JPA&lt;/strong&gt; et &lt;strong&gt;Hibernate&lt;/strong&gt;, et cela sans utiliser la moindre ligne de XML.&lt;br&gt;Personnellement, je n’ai rien contre la &lt;strong&gt;syntaxe XML&lt;/strong&gt; à laquelle j’étais habitué. D’autant la &lt;strong&gt;verbosité&lt;/strong&gt; de la configuration avait considérablement diminué grâce à l’introduction des &lt;strong&gt;namespaces XML&lt;/strong&gt; et des &lt;strong&gt;annotations&lt;/strong&gt;. Avant d’utiliser la syntaxe Java sur une application d’entreprise, j’étais même sceptique quant aux gains qu’elle pouvait apporter. Aujourd’hui, je comprends mieux son intérêt et pourquoi les projets du portfolio Spring tels &lt;a href="http://spring.io/blog/2014/04/30/spring-integration-4-0-released"&gt;Spring Integration 4.0&lt;/a&gt;, &lt;a href="#ZgotmplZ"&gt;Spring Web Service 2.2&lt;/a&gt; ou bien &lt;a href="http://spring.io/blog/2013/07/03/spring-security-java-config-preview-web-security"&gt;Spring Security 3.2&lt;/a&gt; proposent dans leur dernière version un niveau de configuration Java iso-fonctionnel avec leur équivalent XML. Sans compter que le support de la configuration Java leur ouvre la porte d’une intégration plus poussée à &lt;a href="http://projects.spring.io/spring-boot/"&gt;&lt;strong&gt;Spring Boot&lt;/strong&gt;&lt;/a&gt;, le nouveau fer de lance de Pivotal.&lt;br&gt;</description></item><item><title>Utilisez Hibernate 4.3 sous JBoss 5 avec Spring 4</title><link>https://javaetmoi.com/2014/04/hibernate4-sous-jboss5-avec-spring4/</link><pubDate>Thu, 10 Apr 2014 18:50:07 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=1051</guid><description>&lt;p&gt;Dans mon &lt;a href="http://javaetmoi.com/2014/04/support-vfs2-jboss5-spring4/" title="Support du VFS 2 de JBoss 5 dans Spring 4"&gt;précédent billet&lt;/a&gt;, je vous expliquais comment réintroduire le support de VFS 2 abandonné dans &lt;strong&gt;Spring Framework 4.0&lt;/strong&gt;. Et ceci, dans l’optique de pouvoir déployer mon application dans le serveur d’application &lt;strong&gt;JBoss 5.1 EAP&lt;/strong&gt;.&lt;br&gt;Outre ce problème survenant lors de la détection de beans Spring dans le classpath, la montée de version de Spring 3.2 à Spring 4 a révélé un autre problème lié au format VFS de JBoss. Cette fois-ci, c’est le framework &lt;strong&gt;Hibernate 4.3&lt;/strong&gt; qui n’arrive pas à détecter les entités JPA du classpath.&lt;/p&gt;
&lt;p&gt;Certifié conforme à Java EE 5, JBoss 5.1 EAP utilise Hibernate 3.3 comme implémentation de JPA 1. Dans mon cas, Hibernate 4.3 est utilisé en mode standalone et est donc directement embarqué dans les librairies de mon EAR. La configuration &lt;strong&gt;JPA 2.1&lt;/strong&gt; est assurée par le support JPA offert par Spring, et plus particulièrement par la classe &lt;em&gt;&lt;a href="https://github.com/spring-projects/spring-framework/blob/v4.0.3.RELEASE/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java"&gt;LocalContainerEntityManagerFactoryBean&lt;/a&gt;&lt;/em&gt;.&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="logo-hibernate"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2014/04/logo-hibernate.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Isoler le classloader de son EAR sous JBoss</title><link>https://javaetmoi.com/2013/01/isoler-classloader-ear-jboss/</link><pubDate>Sat, 05 Jan 2013 09:41:40 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=520</guid><description>&lt;p&gt;Lors de la &lt;strong&gt;migration&lt;/strong&gt; d’une application d’un &lt;strong&gt;serveur d’application&lt;/strong&gt; vers un autre, il est fréquent d’être confronté à des problématiques de &lt;strong&gt;conflits de librairies&lt;/strong&gt;. C’est par exemple le cas lorsqu’une application initialement déployée sur un Websphere Application Server 6.1 doit migrer sur &lt;strong&gt;JBoss 5.1 EAP&lt;/strong&gt; (version commerciale de JBoss AS).
Pour rappel, WAS 6.1 implémente J2EE 1.4 et s’exécute donc sur Java 5. Quant à JBoss 5.1 EAP, il implémente la norme Java EE 5, embarque donc de nombreuses implémentations des standards tels que JPA 1, JSF 1.2 et JAX-WS 1, et tourne sur Java 6.&lt;/p&gt;
&lt;p&gt;Pour illustration, prenons une application s’appuyant sur Hibernate 3.6 pour sa couche de persistance et JAXB 2.2 pour le marshalling lors d’appel de web services. Ces 2 librairies sont embarquées dans le répertoire lib de son EAR et ne posent pas de problèmes particuliers à WAS 6.1.
Par contre, sur JBoss 5.1 EAP, c’est un tout autre problème. En effet, son implémentation JPA repose sur la version 3.3 d&amp;rsquo;Hibernate. Qui plus est, JAXB 2.1 a été intégrée dans Java 6.
Si vous tentez de déployer une telle application sur un JBoss installé avec la configuration par défaut, il y’a de fortes chances que vous tombiez sur l’une ou l’autre des exceptions suivantes : &lt;em&gt;ClassCastException&lt;/em&gt;, &lt;em&gt;NoSuchMethodException, IllegalAccessErrors&lt;/em&gt;, &lt;em&gt;VerifyError.&lt;/em&gt;
A ce que j’ai compris en parcourant la documentation mais également déduis de mes tests, différents mécanismes permettent d’expliquer ces comportements :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Par défaut, lors du chargement d’une classe, le classloader de l’EAR va commencer par demander à son classloader parent (en l’occurrence celui de JBoss) de trouver la classe. Ainsi, c’est par exemple la classe Session d’Hibernate 3.3 qui sera chargée et non celle de la version 3.6 comme attendu. Il s’agit du comportement standard d’un classloader. Et c’est ce qu’on appelle communément le « j2se classloading compliance ». Sous WAS, cette stratégie de chargement peut être changée en paramétrant le classloader en PARENT_LAST.&lt;/li&gt;
&lt;li&gt;Les classes chargées par d’autres applications déployées sur la même instance de JBoss peuvent être partagées par votre application. Par exemple, la console d’admin JBoss admin-console.war embarque sa propre version de Richfaces et de Seam et peut, malgré elle, vous en faire bénéficier.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="solutions-étudiées"&gt;&lt;em&gt;Solutions étudiées&lt;/em&gt;&lt;/h2&gt;
&lt;p&gt;Pour mener à bien la migration, plusieurs pistes ont été étudiées :
&lt;strong&gt;Solutions&lt;strong&gt;&lt;strong&gt;Inconvénients&lt;/strong&gt;&lt;/strong&gt;Avantages&lt;/strong&gt;1Downgrader les versions des frameworks pour utiliser celles embarquées dans JBoss 5.1Important travail de refactoring pour combler les fonctionnalités manquantes.
Bugs existants récupérés.Respect de la norme Java EE 5.
Support éditeur maximal.2Configurer sur mesure le répertoire d’installation de JBoss (ex : supprimer le support des EJB 3 et de JPA)Mutualisation du répertoire d’installation rendue caduque.
Main sur la production _._Un JBoss qui démarre plus vite.
Pas d’impact sur le code.3Isoler le déploiement de l’applicationLire la documentation JBoss.
Augmentation possible de la PermGen.Risque nul.
Simple configuration.
Configuration embarquée dans l’EAR.&lt;/p&gt;
&lt;h2 id="configurer-le-classloader-de-lapplication"&gt;Configurer le classloader de l’application&lt;/h2&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="@Copyright JBoss - Classe chargée en priorité depuis l&amp;amp;amp;rsquo;EAR:right"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2013/01/JBoss-ClassLoading-Scoped-Java2ParentDelegationOff-300x202.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Pour mettre en œuvre la solution n°3 concernant à « scoper » l’application, il est nécessaire de configurer le chargement des classes de JBoss . Une description détaillée de son fonctionnement est disponible sur la page &lt;a href="https://community.jboss.org/wiki/JBossClassLoadingUseCases"&gt;JBossClassLoadingUseCases&lt;/a&gt; du wiki de JBoss.
Dans notre cas, La configuration des classes loaders nécessaire est &lt;strong&gt;deployment scoped&lt;/strong&gt; et &lt;strong&gt;Java2ParentDelegation&lt;/strong&gt; &lt;strong&gt;désactivé&lt;/strong&gt;. Cette configuration est représentée par la figure ci-contre.&lt;/p&gt;
&lt;p&gt;Cette configuration présente les 2 avantages suivants :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Les JARs embarqués dans l&amp;rsquo;EAR priment sur celles fournies par JBoss 5.1 et le JRE.&lt;/li&gt;
&lt;li&gt;Chaque application déployée sur le même serveur possède son propre UnifiedLoaderRepository (ULR). Le chargement des classes est isolé et n&amp;rsquo;interfère pas. Elles sont également isolées du chargement des applications tierces (ex: jmx-console et admin-console).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La configuration du fichier &lt;code&gt;jboss-app.xml&lt;/code&gt; à déposer dans le répertoire META-INF de l’EAR est décrite sur la page &lt;a href="https://community.jboss.org/wiki/ClassLoadingConfiguration"&gt;ClassLoadingConfiguration&lt;/a&gt; du wiki JBoss. En voici un exemple :
Lors de la &lt;strong&gt;migration&lt;/strong&gt; d’une application d’un &lt;strong&gt;serveur d’application&lt;/strong&gt; vers un autre, il est fréquent d’être confronté à des problématiques de &lt;strong&gt;conflits de librairies&lt;/strong&gt;. C’est par exemple le cas lorsqu’une application initialement déployée sur un Websphere Application Server 6.1 doit migrer sur &lt;strong&gt;JBoss 5.1 EAP&lt;/strong&gt; (version commerciale de JBoss AS).
Pour rappel, WAS 6.1 implémente J2EE 1.4 et s’exécute donc sur Java 5. Quant à JBoss 5.1 EAP, il implémente la norme Java EE 5, embarque donc de nombreuses implémentations des standards tels que JPA 1, JSF 1.2 et JAX-WS 1, et tourne sur Java 6.&lt;/p&gt;</description></item><item><title>Dites adieu aux LazyInitializationException</title><link>https://javaetmoi.com/2012/03/hibernate-dites-adieu-aux-lazy-initialization-exception/</link><pubDate>Fri, 30 Mar 2012 20:39:43 +0000</pubDate><guid isPermaLink="false">http://javaetmoi.com/?p=54</guid><description>Dans ce deuxième ticket, j’aimerais vous parler du projet &lt;a href="https://github.com/arey/hibernate-hydrate"&gt;&lt;strong&gt;Hibernate Hydrate&lt;/strong&gt;&lt;/a&gt; [1] que j’ai récemment publié sur GitHub. Au cœur de ce projet : une seule classe Java proposant &lt;strong&gt;une unique fonctionnalité&lt;/strong&gt;. En quelques années, c’est la seconde fois que j’ai eu besoin de coder ce genre de fonctionnalité. Aussi, je me suis dit qu’il serait pratique de l’avoir sous le coude pour une prochaine fois et, au passage, vous en faire profiter.</description></item></channel></rss>