Créer un objet contenu dans un autre.
Bonjour à tous, Tout d'abord bravo à ceux qui lisent ce mail depuis leur ordinateur portable sur la plage, bon courage à ceux qui ne sont pas encore sur la plage et... encore 12 mois avant les congés d'été à ceux qui les ont déjà pris... Mes premiers pas dans l'utilisation des outils Topia et Eugene sont plutôt hésitant mais je commence à prendre mes marques. Là tout de suite, j'aurais besoin d'un coup de pouce de qui voudra bien. Ce n'est pas grand chose, juste une vision de l'organisation des données et du moyen de les appeler. Le projet qui me concerne est easyflow : svn checkout svn:// labs.libre-entreprise.org/svnroot/easyflow J'ai une classe workstation qui contient une collection de flow. Je crée une workstation et ensuite je souhaite créer un flow qui lui est lié. Pour une question pratique, j'ai ajouté un adressage vers le flow courant. Ce qui m'évite d'avoir à faire une recherche dans la collection pour savoir où est mon flow courant étant donnée que je ne vais utiliser qu'un flow à la fois (le courant). Ça c'est ce que je veux faire mais je ne vois pas vraiment comment je peux le faire. J'arrive à créer une workstation (merci flo, c'est toi qui me l'a fait lors de notre visite) mais après cela je ne vois pas comment faire pour lui ajouter un flow... Je vais mettre le bout de code qui vas bien (en lui enlevant la gestion des exceptions et autre contexte pour que ce soit plus lisible). Création de la workstation depuis la classe FlowManager : // ici on défini un objet de type workstation dao pour la communication avec la base de données. WorkstationDAO ws_dao = EasyFlowDAOHelper.getWorkstationDAO(transaction); // Là on créer l'entité Workstation en lui définissant son nom. Workstation workstationCurrent = ws_dao.create(Workstation.PROPERTY_NAME, name); Ajout d'un flow à cette workstation depuis la classe WorkstationImpl : // Mise en place de la communication avec la base de données FlowDAO dao = EasyFlowDAOHelper.getFlowDAO(transaction); // Création de l'entité Flow dans la base de données en lui donnant un date. C'est ici que je ne comprend pas comment lui dire que celui-ci sera lié à la workstation en cours... Flow FlowCreate = dao.create(Flow.PROPERTY_BEGIN, pDate); // Ici je l'ajoute à la collection de la workstation... je ne suis vraiment pas sûr de moi là non plus car si je ne lui ai pas dit précédemment quelle workstation lui est liée, je ne comprendrais pas qu'il arrive à faire le lien tout seul. this.flow.add(FlowCreate); Et là, il faudrait que je mette dans la variable FlowCurrent de la classe workstation l'adresse du flow précédemment créé... Malheureusement je ne vois pas comment retrouver cette adresse simplement (sans avoir a faire une recherche dans la collection en fonction des critères du flow précédemment créé. Et je vais faire un petit commit pour ceux qui voudraient voir mon code intégral... Merci pour votre coup de pouce... Julien NICOLAS Nomaka
Le Mon, 26 Jul 2010 23:33:06 +0200, Julien NICOLAS <jnicolas@nomaka.fr> a écrit :
Bonjour à tous,
Tout d'abord bravo à ceux qui lisent ce mail depuis leur ordinateur portable sur la plage,
Je n'ai malheureusement pas cette chance !
bon courage à ceux qui ne sont pas encore sur la plage et... encore 12 mois avant les congés d'été à ceux qui les ont déjà pris...
Mes premiers pas dans l'utilisation des outils Topia et Eugene sont plutôt hésitant mais je commence à prendre mes marques. Là tout de suite, j'aurais besoin d'un coup de pouce de qui voudra bien. Ce n'est pas grand chose, juste une vision de l'organisation des données et du moyen de les appeler.
Le projet qui me concerne est easyflow : svn checkout svn:// labs.libre-entreprise.org/svnroot/easyflow
J'ai une classe workstation qui contient une collection de flow. Je crée une workstation et ensuite je souhaite créer un flow qui lui est lié. Pour une question pratique, j'ai ajouté un adressage vers le flow courant. Ce qui m'évite d'avoir à faire une recherche dans la collection pour savoir où est mon flow courant étant donnée que je ne vais utiliser qu'un flow à la fois (le courant).
J'ai vu que tu avais ajouter directement un attribut dans la classe sur le modèle. Il est préférable d'utiliser une liaison entre les deux classes, Topia a quelque fois besoin de connaitre l'inverse (voir WARNING de validation lors de la compilation maven).
Ça c'est ce que je veux faire mais je ne vois pas vraiment comment je peux le faire. J'arrive à créer une workstation (merci flo, c'est toi qui me l'a fait lors de notre visite) mais après cela je ne vois pas comment faire pour lui ajouter un flow...
J'ai ajouté quelques commentaires et réparer le jeu de test directement dans le code. Il est préférable d'éviter de manipuler des transactions dans les entités. Mieux vaut utiliser le manager (équivalent à un service) qui contiendra en parametre la workstation : public void startWorkstation(Workstation workstation, Date begin) { ... }
Merci pour votre coup de pouce...
Julien NICOLAS Nomaka
En espérant t'avoir aidé :) -- Florian Desbois <fdesbois@codelutin.com> SSLL Code Lutin http://www.codelutin.com tel : 02 40 50 29 28 Réseau Libre-Entreprise
participants (2)
-
fdesbois -
Julien NICOLAS