Accès rapide :
Gérer la persistance des données avec JPA/Hibernate
Gérer la persistance des données avec JPA : Plan de la formation
Gérer la persistance des données avec JPA ORM, JPA et Hibernate : de quoi parle-t-on ?
ORM, JPA et Hibernate : de quoi parle-t-on ? Qu'est-ce qu'un ORM ?
ORM, JPA et Hibernate : de quoi parle-t-on ?Qu'est-ce qu'un ORM ?
Introduction au mapping objet/relationnel : Les problématiques
Gérer la persistance des données avec JPAORM, JPA et Hibernate : de quoi parle-t-on ?
ORM, JPA et Hibernate : de quoi parle-t-on ? La spécification JPA (Java Persistence API)
ORM, JPA et Hibernate : de quoi parle-t-on ?La spécification JPA (Java Persistence API)
ORM, JPA et Hibernate : de quoi parle-t-on ? Les différentes implémentations JPA
ORM, JPA et Hibernate : de quoi parle-t-on ?Les différentes implémentations JPA
Gérer la persistance des données avec JPA Introduction à JPA/Hibernate
Introduction à JPA/Hibernate : Installation de votre environnement de développement
Introduction à JPA/Hibernate :Installation de votre environnement de développement
Gérer la persistance des données avec JPAIntroduction à JPA/Hibernate
Introduction à JPA/Hibernate : Définition d'un mapping Hibernate en XML
Définir les données d'un mapping : Mise en oeuvre
Introduction à JPA/Hibernate : Définition d'un mapping JPA
Introduction à JPA/Hibernate : Comparatif XML / JPA
Gérer la persistance des données avec JPA Configuration du moteur de persistance
Configuration du moteur de persistance : Le fichier META-INF/persistence.xml
Configuration du moteur de persistance : L'activation des logs générés par Hibernate
Configuration du moteur de persistance : Afficher les requêtes SQL produites
Gérer la persistance des données avec JPA Gestion des associations et de l'héritage
Gestion des associations et de l'héritage : Introduction au mapping d'associations
Gestion des associations et de l'héritage : Gestion des associations @OneToOne
Gestion des associations et de l'héritage : Gestion des associations @ManyToOne
Gestion des associations et de l'héritage : Associations unidirectionnelles
Gestion des associations et de l'héritage : Gestion des associations @OneToMany
Gestion des associations et de l'héritage : Gestion des associations @ManyToMany
Gestion des associations et de l'héritage : Mapping de collections
Gestion des associations et de l'héritage : Propagation de actions sur des grappes d'objets
Gestion des associations et de l'héritage : Mapping de l'héritage
Gérer la persistance des données avec JPA Le langage JPQL (Java Persistence Query Language)
Le langage JPQL : Mise en uvre de requêtes JPQL
Le langage JPQL : Les fonctions d'agrégation
Le langage JPQL : Les requêtes polymorphes
Le langage JPQL : Les sous-requêtes et les jointures
Le langage JPQL : Les requêtes de mise à jour
Le langage JPQL : Autres types de requêtes
Gérer la persistance des données avec JPA Optimisation des requêtes JPQL
Optimisation des requêtes JPQL : Réutiliser les requêtes JPQL
Optimisation des requêtes JPQL : Utilisation du cache de premier niveau
Optimisation des requêtes JPQL : Persistance des objets
Optimisation des requêtes JPQL : Lecture par lots
Gérer la persistance des données avec JPA Les différentes stratégies de chargement
Les différentes stratégies de chargement : Introduction
Les différentes stratégies de chargement : Chargement paresseux (Lazy loading)
Les différentes stratégies de chargement : Chargement immédiat (Eager fetching)
Les différentes stratégies de chargement : Chargement explicite
Gérer la persistance des données avec JPA Mise en uvre d'un cache de second niveau
Mise en uvre d'un cache de second niveau : Aspect Généraux
Mise en uvre d'un cache de second niveau : Utilisation de l'implémentation Ehcache
Mise en uvre d'un cache de second niveau : Utilisation d'une cache de requêtes
Mise en uvre d'un cache de second niveau : Autres types de caches
Gérer la persistance des données avec JPA Aspects avancés
Aspects avancés : Gestion des Transactions
Aspects avancés : Verrouillage pessimiste
Merci de votre attention
Optimisation des requêtes JPQL : Persistance des objets Voici un exemple d'utilisation de la méthode persist : EntityTransaction trans = entityManager.getTransaction(); trans.begin(); // Début de la transaction User user = new User( "Bond", "James", 007 ); entityManager.persist( user ); // Les ordres SQL sont produits au fil des persists Command theCommand = new Command( user, new Date() ); Set<CommandLine> lines = theCommand.getLines(); Article article1 = new Article( "Truc de fou", "La marque qui tue", 100 ); entityManager.persist( article1 ); Article article2 = new Article( "Truc de dingue", "Autre marque qui tue", 200 ); entityManager.persist( article2 ); CommandLine line1 = new CommandLine( article1, theCommand, 2 ); lines.add( line1 ); CommandLine line2 = new CommandLine( article2, theCommand, 3 ); lines.add( line2 ); entityManager.persist( theCommand ); System.out.println( "Now == flush" ); entityManager.flush(); trans.commit() Dominique Liard - 2006 .. 2021 Notes: Si vous avez activé les logs sur les requêtes SQL générées, voici ce qui sera produit :
[main] DEBUG | org.hibernate.SQL | insert into T_Users (Login, Password, ConnectionNumber) values (?, ?, ?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_Commands (IdUser) values (?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_Articles (Description, Brand, UnitaryPrice) values (?, ?, ?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_CommandLines (IdArticle, Quantity) values (?, ?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_Articles (Description, Brand, UnitaryPrice) values (?, ?, ?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_CommandLines (IdArticle, Quantity) values (?, ?) (SQLStatementLogger.java:111)
Now == flush
[main] DEBUG | org.hibernate.SQL | insert into T_CommandLinesMapping (IdCommand, IdCommandLine) values (?, ?) (SQLStatementLogger.java:111)
[main] DEBUG | org.hibernate.SQL | insert into T_CommandLinesMapping (IdCommand, IdCommandLine) values (?, ?) (SQLStatementLogger.java:111)
Diapositive précédente
Diapositive suivante
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :