Le mardi 23 mars 2010 à 11:06 +0100, Eric Chatellier a écrit :
Le 22/03/2010 18:36, Eric Chatellier a écrit :
Bonjour.
J'ai ajouté une méthode create() sur le DAO qui prend une entité en paramètres.
Bizarrement elle n'existait pas.
Y a-t-il une raison a son absence ?
Le but est de faire ce genre de code : Account myAccount = new AccountImpl() [...] myAccount = accoutDAO.create(myAccount);
Le problème est peut-être ailleurs finalement.
Dans le cas de lima, inclure une forte dépendance sur les "Impl" n'est pas forcement une bonne solution non plus. En effet, c'est pas terrible
On pourrait avoir une methode "newInstance()" sur le DAO qui retourne une instance de "Impl" manipulable via son interface.
Je pense que c'est une meilleure solution. Ce n'est jamais bon d'instancier directement une entité. De plus c'est une méthode qui pourra facilement être étendu dans certains cas (valeurs par défaut, etc...). J'utilise pas mal le principe dans les services codés dans Wao et bientôt dans Pollen, une ou plusieurs méthodes getNewMyEntity pour instancier l'entité.
Par contre, dans le cas d'utilisation d'EJB distant, faire un appel au DAO à chaque instanciation risque d'être couteux (et compliqué par rapport à un simple "new").
Je pense pas que tu fera un new tout le temps non plus. Normalement tu l'instancie une fois dans un form et puis basta.