SlideShare une entreprise Scribd logo
1
Pour suivre ce cours
➔ Avoir de bonnes connaissances en java et jdbc
➔ Connaître déjà les bases d’hibernate.
➔ Un ordinateur connecté
➔ Un IDE et JDK 8+
2
Qui suis-je ?
Lhouceine OUHAMZA: Développeur Java / JEE
ouhamza.web.pro@gmail.com
3
Qui êtes-vous ?
4
C’est quoi ORM et JPA ?
5L.Ouhamza, Avril 2020
Les configurations
EntityManager persistence.xml
SessionFactory hibernate.cfg.xml
6L.Ouhamza, Avril 2020
Les niveaux de cache: L1 & L2
L2: nommé cache hibernate, ehcache
Code source: https://github.com/ouhamzalhss/Hibernate-cache-l2
7L.Ouhamza, Avril 2020
Niveau L1 Niveau L2
Session courante Les sessions créées par sessionFactory
Obligatoire Optionnelle
Activée par défaut Nécessite une configuration
Bean validation et hibernate
validation
8
Bean validation Hibernate validation
Spécification JSR-303 Implémentation de Bean validation
@Size - @Null - @Max ... @Range - @Email - @Url
L.Ouhamza, Avril 2020
Lazy-loading ou Eager-loading
Mapping Le fetch par défaut
@OneToOne
FetchType.Eager
@ManyToOne
@OneToMany
FetchType.Lazy
@ManyToMany
9L.Ouhamza, Avril 2020
Cycle de vie d’une entity
➔ New/transient: il n’est pas gérée par JPA et
elle n’existe pas en base.
➔ Managed: elle est gérée par JPA
➔ Detached : elle n’est pas gérée par JPA
Mais elle existe en base.
➔ Removed: elle est gérée par JPA et va être
effacée
10L.Ouhamza, Avril 2020
Les transactions
➔ Si on veut avoir les données de qualité
➔ Aussi d’avoir les meilleures performances
➔ Gérées dans la couche service.
➔ ...
11L.Ouhamza, Avril 2020
Mapper l’héritage
Single_table: il est par defaut, rapide, mais plusieurs colonnes
Table_per_class: il est efficace pas de jointure (pour récupérer
l’ensemble de types on a besoin de la clause UNION).
Joined: le mode le plus normalisé mais il impose beaucoup de jointure.
12L.Ouhamza, Avril 2020
Hibernate 5 Sep 2015
13L.Ouhamza, Avril 2020
Prise en charge de l'API Date et Heure.
14L.Ouhamza, Avril 2020
Depuis lors, vous n'avez pas besoin d'annotations ou de convertisseurs
supplémentaires pour conserver les classes de l'API Date et heure.
Obtenez les résultats de la requête sous
forme de flux
15L.Ouhamza, Avril 2020
Le code suivant montre un exemple simple qui sélectionne toutes les entités
Book de la base de données et les traite comme un flux.
Récupérer plusieurs entités par leur clé
primaire
16L.Ouhamza, Avril 2020
Comme vous pouvez le voir dans la sortie du journal, Hibernate crée une seule
requête pour sélectionner les 3 enregistrements dans la base de données. C'est
la même requête que vous implémenteriez vous-même, mais l'API est beaucoup
plus facile à utiliser.
Rejoindre des entités non
associées dans une requête
17L.Ouhamza, Avril 2020
@Repeatable annotations
les annotations sont maintenant répétables et peuvent
être affectées plusieurs fois, ce qui rend le code plus
facile à lire et beaucoup plus confortable à utiliser.
18L.Ouhamza, Avril 2020
Evolution de persistance de données
19L.Ouhamza, Avril 2020
De plus complexe au plus facile à implémenter
Via JDBC
20L.Ouhamza, Avril 2020
Plein de code
et donc plein
de bugs.
Hibernate Jpa sans Spring
21L.Ouhamza, Avril 2020
C’est nous qui va
créer et gérer
l’entityManager
Spring et Hibernate Jpa sans Spring Data
22L.Ouhamza, Avril 2020
Spring nous crée
EntityManager
(IOC)
Spring Data
23L.Ouhamza, Avril 2020
Spring data fait le
tous
24

Contenu connexe

Tendances

Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
ENSET, Université Hassan II Casablanca
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
Florian Beaufumé
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
ENSET, Université Hassan II Casablanca
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
Amir Souissi
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
Jaouad Assabbour
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
Ines Ouaz
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Ippon
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
ENSET, Université Hassan II Casablanca
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
Ippon
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVCNathaniel Richand
 
Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?
Jérôme Tamborini
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
ENSET, Université Hassan II Casablanca
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
Ines Ouaz
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
ENSET, Université Hassan II Casablanca
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Maven
MavenMaven
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
Fadel Chafai
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 

Tendances (20)

Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Nouveautés de java 8
Nouveautés de java 8Nouveautés de java 8
Nouveautés de java 8
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Chapitre 5 classes abstraites et interfaces
Chapitre 5  classes abstraites et interfacesChapitre 5  classes abstraites et interfaces
Chapitre 5 classes abstraites et interfaces
 
spring-api-rest.pdf
spring-api-rest.pdfspring-api-rest.pdf
spring-api-rest.pdf
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014Formation JPA Avancé / Hibernate gratuite par Ippon 2014
Formation JPA Avancé / Hibernate gratuite par Ippon 2014
 
Spring security
Spring securitySpring security
Spring security
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014Formation Spring Avancé gratuite par Ippon 2014
Formation Spring Avancé gratuite par Ippon 2014
 
Presentation Spring, Spring MVC
Presentation Spring, Spring MVCPresentation Spring, Spring MVC
Presentation Spring, Spring MVC
 
Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?Java 11 to 17 : What's new !?
Java 11 to 17 : What's new !?
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Maven
MavenMaven
Maven
 
API : l'architecture REST
API : l'architecture RESTAPI : l'architecture REST
API : l'architecture REST
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 

Similaire à Hibernate jpa

CocoaHeads Lyon - Mode Déconnecté dans une app iOS
CocoaHeads Lyon - Mode Déconnecté dans une app iOSCocoaHeads Lyon - Mode Déconnecté dans une app iOS
CocoaHeads Lyon - Mode Déconnecté dans une app iOS
Claire Reynaud
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
sahar dridi
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Ippon
 
Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.
Valdy Ngouabira
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
ATHMAN HAJ-HAMOU
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
kemenaran
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
adiouf2
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
HeartKing10
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
LeTesteur
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
FinistJUG - Apache TomEE
FinistJUG - Apache TomEEFinistJUG - Apache TomEE
FinistJUG - Apache TomEE
Horacio Gonzalez
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas doc
Winslo Nwan
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
Christophe Rochefolle
 
Hibernate : vue d’ensemble
Hibernate : vue d’ensembleHibernate : vue d’ensemble
Hibernate : vue d’ensemble
ProfLibre
 
Support de formation : Yahoo! pipes les modules
Support de formation : Yahoo! pipes les modulesSupport de formation : Yahoo! pipes les modules
Support de formation : Yahoo! pipes les modules
Erwan Tanguy
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Société ELOSI
 
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Mathieu Saby
 
Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015
PXNetwork
 

Similaire à Hibernate jpa (20)

CocoaHeads Lyon - Mode Déconnecté dans une app iOS
CocoaHeads Lyon - Mode Déconnecté dans une app iOSCocoaHeads Lyon - Mode Déconnecté dans une app iOS
CocoaHeads Lyon - Mode Déconnecté dans une app iOS
 
Atelier hadoop-single-sign-on
Atelier hadoop-single-sign-onAtelier hadoop-single-sign-on
Atelier hadoop-single-sign-on
 
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
Web API & Cache, the HTTP way - Ippevent 10 Juin 2014
 
Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.Laravel 9 comprendre les fondamentaux.
Laravel 9 comprendre les fondamentaux.
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
hassclic270.ppt
hassclic270.ppthassclic270.ppt
hassclic270.ppt
 
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdflaravel.sillo.org-Cours Laravel 10  les bases  installation et organisation.pdf
laravel.sillo.org-Cours Laravel 10 les bases installation et organisation.pdf
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
FinistJUG - Apache TomEE
FinistJUG - Apache TomEEFinistJUG - Apache TomEE
FinistJUG - Apache TomEE
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas doc
 
Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
Qualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et WebQualité Logiciel - Outils Open Source pour Java et Web
Qualité Logiciel - Outils Open Source pour Java et Web
 
Hibernate : vue d’ensemble
Hibernate : vue d’ensembleHibernate : vue d’ensemble
Hibernate : vue d’ensemble
 
Support de formation : Yahoo! pipes les modules
Support de formation : Yahoo! pipes les modulesSupport de formation : Yahoo! pipes les modules
Support de formation : Yahoo! pipes les modules
 
Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !Devoxx 2017 : toutes les actualités technologiques à surveiller !
Devoxx 2017 : toutes les actualités technologiques à surveiller !
 
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
Découvrez OpenRefine: un outil gratuit pour nettoyer, préparer et enrichir vo...
 
Hibernate
HibernateHibernate
Hibernate
 
Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015Enrichir vos contenus Wordpress avec les API - WPTech 2015
Enrichir vos contenus Wordpress avec les API - WPTech 2015
 

Plus de Lhouceine OUHAMZA

Présentation sur internet.pptx
Présentation sur internet.pptxPrésentation sur internet.pptx
Présentation sur internet.pptx
Lhouceine OUHAMZA
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWS
Lhouceine OUHAMZA
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
Lhouceine OUHAMZA
 
Kubernetes
KubernetesKubernetes
Kubernetes
Lhouceine OUHAMZA
 
Scrum course
Scrum courseScrum course
Scrum course
Lhouceine OUHAMZA
 
Functional programming
Functional programmingFunctional programming
Functional programming
Lhouceine OUHAMZA
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
Lhouceine OUHAMZA
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
Lhouceine OUHAMZA
 
Systemes authentification
Systemes authentificationSystemes authentification
Systemes authentification
Lhouceine OUHAMZA
 

Plus de Lhouceine OUHAMZA (9)

Présentation sur internet.pptx
Présentation sur internet.pptxPrésentation sur internet.pptx
Présentation sur internet.pptx
 
WEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWSWEB SERVICE SOAP, JAVA, XML, JAXWS
WEB SERVICE SOAP, JAVA, XML, JAXWS
 
Prometheus and Grafana
Prometheus and GrafanaPrometheus and Grafana
Prometheus and Grafana
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Scrum course
Scrum courseScrum course
Scrum course
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
Spring AOP
Spring AOPSpring AOP
Spring AOP
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
Systemes authentification
Systemes authentificationSystemes authentification
Systemes authentification
 

Dernier

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Institut de l'Elevage - Idele
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
sieousse95
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
Institut de l'Elevage - Idele
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
Institut de l'Elevage - Idele
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
khalilbatariagro
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Daniel Bedard
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
imed53
 

Dernier (7)

Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
Quelles rotations dans les systèmes caprins de Nouvelle-Aquitaine et Pays de ...
 
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdfCOURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
COURS ANALYSE FINANCIERE-NOGLO Méthodes d’analyses financières.pdf
 
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande1er webinaire INOSYS Réseaux d’élevage Ovins Viande
1er webinaire INOSYS Réseaux d’élevage Ovins Viande
 
Comment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptationComment aborder le changement climatique dans son métier, volet adaptation
Comment aborder le changement climatique dans son métier, volet adaptation
 
Présentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptxPrésentation PFE (MOUAD LAZRAK) (2).pptx
Présentation PFE (MOUAD LAZRAK) (2).pptx
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
 
Presentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptxPresentation d'esquisse route juin 2023.pptx
Presentation d'esquisse route juin 2023.pptx
 

Hibernate jpa

  • 1. 1
  • 2. Pour suivre ce cours ➔ Avoir de bonnes connaissances en java et jdbc ➔ Connaître déjà les bases d’hibernate. ➔ Un ordinateur connecté ➔ Un IDE et JDK 8+ 2
  • 3. Qui suis-je ? Lhouceine OUHAMZA: Développeur Java / JEE ouhamza.web.pro@gmail.com 3
  • 5. C’est quoi ORM et JPA ? 5L.Ouhamza, Avril 2020
  • 6. Les configurations EntityManager persistence.xml SessionFactory hibernate.cfg.xml 6L.Ouhamza, Avril 2020
  • 7. Les niveaux de cache: L1 & L2 L2: nommé cache hibernate, ehcache Code source: https://github.com/ouhamzalhss/Hibernate-cache-l2 7L.Ouhamza, Avril 2020 Niveau L1 Niveau L2 Session courante Les sessions créées par sessionFactory Obligatoire Optionnelle Activée par défaut Nécessite une configuration
  • 8. Bean validation et hibernate validation 8 Bean validation Hibernate validation Spécification JSR-303 Implémentation de Bean validation @Size - @Null - @Max ... @Range - @Email - @Url L.Ouhamza, Avril 2020
  • 9. Lazy-loading ou Eager-loading Mapping Le fetch par défaut @OneToOne FetchType.Eager @ManyToOne @OneToMany FetchType.Lazy @ManyToMany 9L.Ouhamza, Avril 2020
  • 10. Cycle de vie d’une entity ➔ New/transient: il n’est pas gérée par JPA et elle n’existe pas en base. ➔ Managed: elle est gérée par JPA ➔ Detached : elle n’est pas gérée par JPA Mais elle existe en base. ➔ Removed: elle est gérée par JPA et va être effacée 10L.Ouhamza, Avril 2020
  • 11. Les transactions ➔ Si on veut avoir les données de qualité ➔ Aussi d’avoir les meilleures performances ➔ Gérées dans la couche service. ➔ ... 11L.Ouhamza, Avril 2020
  • 12. Mapper l’héritage Single_table: il est par defaut, rapide, mais plusieurs colonnes Table_per_class: il est efficace pas de jointure (pour récupérer l’ensemble de types on a besoin de la clause UNION). Joined: le mode le plus normalisé mais il impose beaucoup de jointure. 12L.Ouhamza, Avril 2020
  • 13. Hibernate 5 Sep 2015 13L.Ouhamza, Avril 2020
  • 14. Prise en charge de l'API Date et Heure. 14L.Ouhamza, Avril 2020 Depuis lors, vous n'avez pas besoin d'annotations ou de convertisseurs supplémentaires pour conserver les classes de l'API Date et heure.
  • 15. Obtenez les résultats de la requête sous forme de flux 15L.Ouhamza, Avril 2020 Le code suivant montre un exemple simple qui sélectionne toutes les entités Book de la base de données et les traite comme un flux.
  • 16. Récupérer plusieurs entités par leur clé primaire 16L.Ouhamza, Avril 2020 Comme vous pouvez le voir dans la sortie du journal, Hibernate crée une seule requête pour sélectionner les 3 enregistrements dans la base de données. C'est la même requête que vous implémenteriez vous-même, mais l'API est beaucoup plus facile à utiliser.
  • 17. Rejoindre des entités non associées dans une requête 17L.Ouhamza, Avril 2020
  • 18. @Repeatable annotations les annotations sont maintenant répétables et peuvent être affectées plusieurs fois, ce qui rend le code plus facile à lire et beaucoup plus confortable à utiliser. 18L.Ouhamza, Avril 2020
  • 19. Evolution de persistance de données 19L.Ouhamza, Avril 2020 De plus complexe au plus facile à implémenter
  • 20. Via JDBC 20L.Ouhamza, Avril 2020 Plein de code et donc plein de bugs.
  • 21. Hibernate Jpa sans Spring 21L.Ouhamza, Avril 2020 C’est nous qui va créer et gérer l’entityManager
  • 22. Spring et Hibernate Jpa sans Spring Data 22L.Ouhamza, Avril 2020 Spring nous crée EntityManager (IOC)
  • 23. Spring Data 23L.Ouhamza, Avril 2020 Spring data fait le tous
  • 24. 24

Notes de l'éditeur

  1. Le cache de premier niveau est le cache de session. Les objets sont mis en cache dans la session en cours et ils ne sont actifs que jusqu'à la fermeture de la session. Le cache de deuxième niveau existe tant que la fabrique de sessions est active.