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