On Tue, 23 Nov 2010 10:27:17 +0100 Jean Couteau <couteau@codelutin.com> wrote:
Le 22/11/2010 19:55, bpoussin@users.nuiton.org a écrit :
Author: bpoussin
Log: add FIXME on bad code and test unit that must be passed when this code will be corrected
try { + // FIXME poussin 20101122 this is completely false :( + // we can't use BeanUtils.copyProperties to copy to Wikitty + // there are no get or set method for field BeanUtils.copyProperties(result, entity); } catch (Exception eee) { throw new WikittyException("Could not transform entity to Wikitty", eee);
Le problème viens sur les wikittyId et version a priori. Mais normalement les DTO/wikittys/... viennent du service et donc on a déjà des wikittyId et version et donc on a pas besoin de les setter.
Je dis une grosse connerie ou pas ?
Du coup si on retrouve pas wikitty dans le wikitty service, on peut retourner null ?
oui, tu dis une betise :). Parce que justement tout pause probleme sauf l'id et la version :). - On recupere un Business entity avec son wikitty a l'interieur. - On demande sa conversion en DTO - On modifie sa version DTO - On demande le wikitty equivalent du DTO via la nouvelle methode getWikitty - Il faut que les champs du wikitty reflete les modif qui ont ete faite sur le dto et non pas que le wikitty soit equivalent a ce qu'on avait avant les modif. Car sinon la methode getWikitty ne sert absolument a rien :( autant faire un restore en passant l'id. Donc il faut reflechir a un moyen pour faire passer les valeurs du DTO dans le wikitty et donc retrouver l'equivalence de champs entre les deux. Cela n'est pas trivial et il faut une aide externe pour que ce soit le plus simple possible. Je propose que lors de la generation du DTO sur chaque champs on ajoute une annotation qui indique le FQN du champs wikitty equivalent. Du coup le mapping entre les deux est simple. Donc a faire: - creer une annotation - l'utilise pour la copie DTO <==> wikitty -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com () campagne du ruban ascii http://www.codelutin.com /\ pour les mails en ascii