[{"data":1,"prerenderedAt":45},["ShallowReactive",2],{"course-jpa-et-hibernate-persistance-des-donnees":3,"highlight-java-@Entity\nclass Comman":44},{"id":4,"name":5,"slug":6,"location":7,"targetAudienceFormatMarkdown":8,"prerequisitesFormatMarkdown":9,"objectivesFormatMarkdown":10,"descriptionFormatMarkdown":11,"teachingMethodsFormatMarkdown":12,"teachingResourcesFormatMarkdown":13,"evaluationMethodsFormatMarkdown":14,"accessibilityFormatMarkdown":15,"accessMethodsFormatMarkdown":16,"minimumParticipants":7,"maximumParticipants":7,"duration":17,"reference":18,"trainerType":7,"updated_at":19,"created_at":20,"price":21,"organizationMode":22,"theme":25,"code":29,"tags":34,"metadata":35},"/api/courses/0b56fe4e-b298-11f1-a993-d8ca06000363","JPA et Hibernate : persistance des données","jpa-et-hibernate-persistance-des-donnees",null,"Développeurs Java travaillant avec des bases relationnelles.","Maîtrise de Java. Connaissance du langage SQL.","Mapper objets et tables et optimiser requêtes et transactions avec JPA/Hibernate.","--day1--\n\n## Mapping de base\n\n-   Principes de l'ORM ; entités, identifiants, stratégies de génération ; types et conversions ; configuration d'une unité de persistance.\n\n--break--\n\n## Associations\n\n-   Relations un-à-un, un-à-plusieurs, plusieurs-à-plusieurs ; sens de la relation et propriétaire ; héritage d'entités et stratégies de table.\n\n--day2--\n\n## Contexte de persistance\n\n-   Cycle de vie des entités ; EntityManager et transactions ; chargement paresseux et immédiat ; problème du N+1 et détection.\n\n--break--\n\n## Requêtes\n\n-   JPQL et requêtes nommées ; API Criteria ; requêtes natives ; projections et DTO ; pagination.\n\n--day3--\n\n## Performance\n\n-   Analyse du SQL généré ; stratégies de chargement (jointures, lots) ; caches de premier et second niveau ; verrouillage optimiste et pessimiste.\n\n--break--\n\n## Mise en œuvre\n\n-   Migrations de schéma ; tests de la couche de persistance ; pièges courants en production ; atelier d'optimisation sur une application dégradée.","Présentiel, distanciel, hybride","Les supports pédagogiques sont remis aux stagiaires sous format numérique et/ou papier selon les modalités de la formation.\n\nIls comprennent des supports de cours, des présentations, des fiches pratiques, des études de cas, des exercices applicatifs ainsi que des QCM d’entraînement selon la formation. (adapté au choix du formateur)\n\nLes formations s’appuient sur des moyens techniques adaptés : ordinateurs, logiciels professionnels, connexion internet, écran ou vidéoprojecteur, ainsi que des outils collaboratifs et de visioconférence pour les formations à distance.\n\nL’ensemble des supports pédagogiques est accessible pendant et après la formation afin de favoriser l’appropriation et la mise en pratique des compétences acquises.","En amont de la formation, un recueil des besoins permet de récolter des informations sur le stagiaire et ses attentes. L’évaluation se fait en cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation et/ou un examen.\n\nUn suivi de qualité est effectué grâce à nos sessions en groupe restreint (entre 2 et 9 participants maximum). Le stagiaire émargera par demi-journée et recevra une attestation de formation.","Nous informons l’ensemble de nos clients et stagiaires que nous sommes dans la capacité d’adapter les sessions selon les handicaps et les situations spécifiques. Nous nous engageons à répondre à toutes vos demandes sous un délai de 48h ouvré.","Si l’une de nos formations vous intéresse, contactez-nous au +33 4 93 65 34 24 ou à l’adresse mail contact@m2g-intellect.fr. Selon votre besoin et vos attentes, nous organiserons un échange téléphonique avec le formateur pressenti afin d’adapter la formation et ses modules, puis nous vous adresserons un devis.\n\nLes dates de la formation seront à convenir sous 30 jours maximum.","21.00","L1-DEV-06","2026-09-18T09:45:10+00:00","2026-09-17T15:02:32+00:00","1980.00",{"id":23,"name":24},"/api/organization_mode_types/6","HYBRID",{"id":26,"name":27,"slug":28},"/api/themes/0ac148c3-b298-11f1-a993-d8ca06000363","Développement logiciel informatique et web","developpement-logiciel-informatique-et-web",{"id":30,"label":31,"domain":32},"/api/training_specialities/163","326 - Informatique, traitement de l’information, réseaux de transmission des données",{"label":33},"32 - Communication et information",[],{"desc-accroche":36,"Description":37,"icon-color":38,"icon-name":39,"code-langage":40,"code-snippet":41,"courte-description":42,"titre-accroche":43},"Mettez en place mapping objet-relationnel, associations et cascades, gestion du contexte de persistance, requêtes JPQL et stratégies de cache pour éliminer les requêtes N+1.","La plupart des problèmes de performance d'une application Java se logent dans la couche de persistance, souvent sans que personne ne le voie avant la mise en charge. Cette formation traite le mapping objet-relationnel avec les annotations JPA (associations, héritage, cascades, embeddables), la gestion fine du contexte de persistance (états des entités, dirty checking, flush) et l'écriture de requêtes JPQL performantes. Une large place est faite à l'optimisation : détection et résolution du problème des requêtes N+1, stratégies de chargement (lazy, eager), fetch joins, et cache de premier et second niveau propres à Hibernate. Chaque exercice s'accompagne d'une mesure du SQL réellement émis par le framework, pour raisonner sur des faits plutôt que des suppositions. Elle s'adresse aux développeurs Java travaillant avec des bases de données relationnelles.","#59666C","mdi:database-sync","java","@Entity\nclass Commande {\n    @Id @GeneratedValue\n    Long id;\n\n    @OneToMany(mappedBy = \"commande\", cascade = CascadeType.ALL, fetch = FetchType.LAZY)\n    List\u003CLigneCommande> lignes = new ArrayList\u003C>();\n}\n\n@Query(\"select c from Commande c join fetch c.lignes where c.client.id = :clientId\")\nList\u003CCommande> parClient(@Param(\"clientId\") Long clientId);","Formation JPA et Hibernate : mapping objet-relationnel, gestion du contexte de persistance, requêtes JPQL et optimisation des performances avec mesure du SQL émis.","Maîtrisez JPA et Hibernate pour mapper vos objets aux tables et optimiser durablement vos requêtes et vos transactions.","\u003Cpre class=\"hljs\">\u003Ccode class=\"language-java\">\u003Cspan class=\"hljs-meta\">@Entity\u003C/span>\n\u003Cspan class=\"hljs-keyword\">class\u003C/span> \u003Cspan class=\"hljs-title class_\">Commande\u003C/span> {\n    \u003Cspan class=\"hljs-meta\">@Id\u003C/span> \u003Cspan class=\"hljs-meta\">@GeneratedValue\u003C/span>\n    Long id;\n\n    \u003Cspan class=\"hljs-meta\">@OneToMany(mappedBy = &quot;commande&quot;, cascade = CascadeType.ALL, fetch = FetchType.LAZY)\u003C/span>\n    List&lt;LigneCommande&gt; lignes = \u003Cspan class=\"hljs-keyword\">new\u003C/span> \u003Cspan class=\"hljs-title class_\">ArrayList\u003C/span>&lt;&gt;();\n}\n\n\u003Cspan class=\"hljs-meta\">@Query(&quot;select c from Commande c join fetch c.lignes where c.client.id = :clientId&quot;)\u003C/span>\nList&lt;Commande&gt; \u003Cspan class=\"hljs-title function_\">parClient\u003C/span>\u003Cspan class=\"hljs-params\">(\u003Cspan class=\"hljs-meta\">@Param(&quot;clientId&quot;)\u003C/span> Long clientId)\u003C/span>;\u003C/code>\u003C/pre>",1789717714439]