Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
slam4:orm:etudiants:nicolas [2012/12/04 15:41] – [HIBERNATE] mathissart | slam4:orm:etudiants:nicolas [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 75: | Ligne 75: | ||
== 6) lien bidirectionnel entre deux classes == | == 6) lien bidirectionnel entre deux classes == | ||
- | {{: | + | {{: |
== 7) À quoi correspond la méthode persist() ? == | == 7) À quoi correspond la méthode persist() ? == | ||
Ligne 111: | Ligne 111: | ||
== 9) Quelles requêtes SQL ont été créées par Hibernate pour réaliser la persistance ? == | == 9) Quelles requêtes SQL ont été créées par Hibernate pour réaliser la persistance ? == | ||
- | Afin de réaliser la persistance, | + | Afin de réaliser la persistance, |
+ | Ajout de la catégorie : | ||
+ | <code sql |h INSERT Catégorie> | ||
+ | insert | ||
+ | into | ||
+ | Categorie | ||
+ | (libelle) | ||
+ | values | ||
+ | (?) | ||
+ | </ | ||
+ | Ajout du produit : | ||
+ | <code sql |h INSERT Produit> | ||
+ | insert | ||
+ | into | ||
+ | Produit | ||
+ | (idCategorie, | ||
+ | values | ||
+ | (?, ?, ?, ?) | ||
+ | </ | ||
+ | |||
+ | == 10) Pourquoi comportent t-elles des points d' | ||
+ | Les requêtes comportent des points d’interrogation car hibernate a mit en place des requêtes paramétrables.\\ | ||
+ | | ||
+ | Les paramètres sont dont affichés avec des "?" | ||
+ | |||
+ | |||
+ | == 11) Qu'est ce que charge exactement Hibernate lors du chargement d'un Objet ? == | ||
+ | |||
+ | Lors d'un chargement d' | ||
+ | Par exemple si l'on charge un produit, on charge aussi sa catégorie : \\ | ||
+ | {{: | ||
+ | On peut voir que la catégorie est bien chargé | ||
+ | |||
+ | |||
+ | |||
+ | == 12) Comment sont chargés les instances liées à un objet chargé pour les liens oneToMany et manyToOne ? == | ||
+ | |||
+ | Pour charger les instances liées à un objet chargé pour les liens oneToMany, Hibernate charge l' | ||
+ | Par exemple, lorsque l'on charge un produit, il charge aussi sa catégorie : | ||
+ | <code sql |h jj> | ||
+ | select | ||
+ | produit0_.id as id1_1_, | ||
+ | produit0_.idCategorie as idCatego4_1_1_, | ||
+ | produit0_.nom as nom1_1_, | ||
+ | produit0_.prix as prix1_1_, | ||
+ | categorie1_.id as id0_0_, | ||
+ | categorie1_.libelle as libelle0_0_ | ||
+ | from | ||
+ | Produit produit0_ | ||
+ | left outer join | ||
+ | Categorie categorie1_ | ||
+ | on produit0_.idCategorie=categorie1_.id | ||
+ | where | ||
+ | produit0_.id=? | ||
+ | </ | ||
+ | |||
+ | |||
+ | Pour charger les instances liées à un objet chargé pour les liens ManyToOne, | ||
+ | Hibernate: | ||
+ | select | ||
+ | categorie0_.id as id0_0_, | ||
+ | categorie0_.libelle as libelle0_0_ | ||
+ | from | ||
+ | Categorie categorie0_ | ||
+ | where | ||
+ | categorie0_.id=? | ||
+ | Hibernate: | ||
+ | select | ||
+ | produits0_.idCategorie as idCatego4_1_, | ||
+ | produits0_.id as id1_, | ||
+ | produits0_.id as id1_0_, | ||
+ | produits0_.idCategorie as idCatego4_1_0_, | ||
+ | produits0_.nom as nom1_0_, | ||
+ | produits0_.prix as prix1_0_ | ||
+ | from | ||
+ | Produit produits0_ | ||
+ | where | ||
+ | produits0_.idCategorie=? | ||
+ | |||
+ | </ | ||
+ | === En quoi consiste le chargement paresseux d' | ||
+ | Le chargement paresseux consiste donc à charger objet par objet.\\ | ||
+ | Par exemple, avec l' | ||