| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente |
| slam4:bugreport:revisions [2013/11/28 11:11] – jcheron | slam4:bugreport:revisions [2019/08/31 14:21] (Version actuelle) – modification externe 127.0.0.1 |
|---|
| ====== DAO V 1.0.0.3 ====== | ====== DAO V 1.0.0.3 ====== |
| | |
| | <html><div class="note">Attention, les accesseurs (getters and setters) doivent être implémentés pour le bon fonctionnement des associations.</div></html> |
| |
| ===== ManyToOne ===== | ===== ManyToOne ===== |
| Ajout des annotations dans la classe Utilisateur : | Ajout des annotations dans la classe Utilisateur : |
| |
| <sxh php;titleUtilisateur.php> | <sxh php;title:Utilisateur.php> |
| class Utilisateur extends BaseObject{ | class Utilisateur extends BaseObject{ |
| |
| </sxh> | </sxh> |
| |
| | ==== JoinColumn ==== |
| | * **name** : nom de la clé étrangère correspondant au groupe dans l'utilisateur =>idGroupe |
| | * **className** : Classe du membre associé |
| |
| ===== Déclaration des ManyToMany et OneToMany ===== | ==== Chargement ==== |
| | Les membres **manyToOne** sont chargées automatiquement avec les objets qui les contiennent. |
| | Si un utilisateur est chargé, le groupe de l'utilisateur l'est également. |
| |
| <sxh php;title:Exemple ManyTOMany> | <sxh php;title:Chargement d'un utilisateur> |
| | $aUser=DAO::getOne("Utilisateur",1); |
| | echo $aUser->getGroupe(); |
| | </sxh> |
| | |
| | ===== OneToMany ===== |
| | |
| | **Exemple :** |
| | Dans chaque groupe, on a plusieurs utilisateurs. |
| | |
| | Ajout des annotations dans la classe Groupe : |
| | |
| | <sxh php;title:Groupe.php> |
| class Groupe extends BaseObject{ | class Groupe extends BaseObject{ |
| private $libelle; | |
| |
| | private $libelle; |
| /** | /** |
| * @OneToMany(mappedBy="groupe",className="Utilisateur") | * @OneToMany(mappedBy="groupe",className="Utilisateur") |
| */ | */ |
| private $utilisateurs; | private $utilisateurs; |
| | </sxh> |
| | |
| | * **mappedBy** : fait référence au membre groupe de la classe utilisateur |
| | * **className** : Classe du membre associé |
| | |
| | ==== Chargement ==== |
| | Les membres **oneToMany** ne sont chargés automatiquement avec les objets qui les contiennent. |
| | Il est nécessaire de le faire explicitement dans le code pour qu'ils le soient : |
| | |
| | <sxh php;title:Chargement d'un groupe et de ses utilisateurs> |
| | $aGroupe=DAO::getOne("Groupe",1); |
| | DAO::getOneToMany($aGroupe,"utilisateurs"); |
| | var_dump($aGroupe->getUtilisateurs()); |
| | </sxh> |
| | ===== Déclaration des ManyToMany===== |
| | |
| | |
| | **Exemple :** Les groupes disposent de droits sur les modules.\\ |
| | Un groupe aura donc une collection de modules représentant ses droits. |
| | |
| | <sxh php;title:Exemple ManyTOMany> |
| | class Groupe extends BaseObject{ |
| | ... |
| | |
| /** | /** |
| private $modules; | private $modules; |
| } | } |
| | </sxh> |
| | |
| | * **targetEntity** : Classe métier des objets de la collection cible |
| | * **inversedBy** : nom du membre collection dans la classe targetEntity |
| | |
| | ==== JoinTable ==== |
| | * name : nom de la table association correspondant à la CIM. |
| | |
| | ==== Chargement ==== |
| | Les membres **ManyToMany** ne sont pas chargés automatiquement avec les objets qui les contiennent. |
| | Il est nécessaire de le faire explicitement dans le code pour qu'ils le soient : |
| | |
| | <sxh php;title:Chargement d'un groupe et de ses modules> |
| | $aGroupe=DAO::getOne("Groupe",1); |
| | DAO::getManyToMany($aGroupe,"modules"); |
| | var_dump($aGroupe->getModules()); |
| </sxh> | </sxh> |