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
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
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
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.
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
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.