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:16] – [Création des classes métier] mathissart | slam4:orm:etudiants:nicolas [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| - | |||
| - | * produit -> 1 catégorie | ||
| - | * 1 catégorie -> 0,n produits | ||
| - | * Ligne = détail de la commande | ||
| ==== Création des classes métier ===== | ==== Création des classes métier ===== | ||
| Ligne 79: | 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 90: | Ligne 86: | ||
| </ | </ | ||
| + | |||
| + | |||
| + | == 8) À quoi correspond la méthode commit() ? == | ||
| + | La méthode commit permet de mettre à jour la base de donnée avec les objets persistants. | ||
| + | Autrement dit, la méthode commit permet d’insérer dans la base de donnée les objets qui sont valide. | ||
| + | |||
| + | Code de la méthode commit : | ||
| + | <code java |h Méthode Commit> | ||
| + | Transaction trans = session.beginTransaction(); | ||
| + | |||
| + | |||
| + | trans.commit(); | ||
| + | |||
| + | </ | ||
| + | |||
| + | == 8) Comment ont été traduits les liens objet entre le membre categorie et produits entre ces classes dans les tables de la base ? == | ||
| + | |||
| + | Lors de l' | ||
| + | <code java |h Produit> | ||
| + | Produit aProduit=new Produit(" | ||
| + | </ | ||
| + | Lors de l' | ||
| + | |||
| + | == 9) Quelles requêtes SQL ont été créées par Hibernate pour 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' | ||