User Tools

Site Tools


wiki:epims4_0m2:developer:epcorehibernate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:epims4_0m2:developer:epcorehibernate [2008/07/17 16:40]
dupierris
wiki:epims4_0m2:developer:epcorehibernate [2008/10/02 10:21] (current)
Line 2: Line 2:
  
 **Attention** : Si dans les fichiers de mapping (.hbm) on utilise un set pour les collections non ordonnées, on ne peut pas utiliser ces collections dans des '​datatable'​ (JSF) pour la partie view. => Utilisation de '​bag'​ dont l'​implémentation en Java est une ArrayList. **Attention** : Si dans les fichiers de mapping (.hbm) on utilise un set pour les collections non ordonnées, on ne peut pas utiliser ces collections dans des '​datatable'​ (JSF) pour la partie view. => Utilisation de '​bag'​ dont l'​implémentation en Java est une ArrayList.
 +
 +
 +Pour la gestion des fichiers de mapping et la génération automatique des objets du domaines et DAO, se reporter au chapitre [[epcorearchitecture]]
  
 ==== Utilisation de la propriété lazy ==== ==== Utilisation de la propriété lazy ====
Line 45: Line 48:
 Une des solutions que l’on retrouve dans les différents forum ou docs, est de récupérer les données lors de la lecture de l’entité si l’on sait que l’on en aura besoin. Cette solution n’est pas convaincante lorsque l’on souhaite séparer complètement la vue des données. En effet, lors du chargement d’une entités au niveau des DAO ou même des Services, on ne connaît pas l’utilisation qui en sera faite. Une des solutions que l’on retrouve dans les différents forum ou docs, est de récupérer les données lors de la lecture de l’entité si l’on sait que l’on en aura besoin. Cette solution n’est pas convaincante lorsque l’on souhaite séparer complètement la vue des données. En effet, lors du chargement d’une entités au niveau des DAO ou même des Services, on ne connaît pas l’utilisation qui en sera faite.
  
-//​Solution ​://+//Solution //
 + 
 Il est donc nécessaire de définir une méthode qui ouvre la session si nécessaire afin de charger les données ''​lazy''​ sur demande. Une première méthode est définie au niveau des DAO. On retrouve dans IStudyDAO la déclaration de la méthode public void refreshLazy(Study study). Au niveau de l’implémentation,​ dans EPCoreStudyDAO,​ lors d’une même session on actualise l’état de l’entité et on accède aux propriétés lazy afin que celles-ci soient chargées. ​ Il est donc nécessaire de définir une méthode qui ouvre la session si nécessaire afin de charger les données ''​lazy''​ sur demande. Une première méthode est définie au niveau des DAO. On retrouve dans IStudyDAO la déclaration de la méthode public void refreshLazy(Study study). Au niveau de l’implémentation,​ dans EPCoreStudyDAO,​ lors d’une même session on actualise l’état de l’entité et on accède aux propriétés lazy afin que celles-ci soient chargées. ​
  
Line 58: Line 63:
 L'​utilisateur d'​eP-Core verra deux méthodes pour accéder aux données d’une entité : Study.getSample() et IStudyService.getStudySample(Study study). L’utilisation de l’une ou l’autre de ces méthodes entraîne un comportement différent, voire la génération d’une exception dans le premier cas. Un commentaire devra expliquer le comportement de ces méthodes. L'​utilisateur d'​eP-Core verra deux méthodes pour accéder aux données d’une entité : Study.getSample() et IStudyService.getStudySample(Study study). L’utilisation de l’une ou l’autre de ces méthodes entraîne un comportement différent, voire la génération d’une exception dans le premier cas. Un commentaire devra expliquer le comportement de ces méthodes.
  
 +\\
 +\\
 +\\
 +----
 +
 +**(Continuez vers la suite de la documentation => [[.:​epcorearchivage]])**
wiki/epims4_0m2/developer/epcorehibernate.1216305606.txt.gz · Last modified: 2008/09/24 15:35 (external edit)