Je me demande quelle est la meilleure façon de gérer le mappage des beans entité (JPA 2) aux DTO. Puisque vous ne pouvez pas utiliser les beans entité "directement" avec GWT, vous devez gérer les DTO à la place.Entités GWT + + JPA + DTO + Dozer
J'ai plusieurs entités avec diverses relations (OneToOne, OneToMany, ManyToMany avec une table de jointure, etc.). Dans un premier temps j'ai commencé à convertir toutes les entités DTO à la main à l'aide d'un MyEntityTransform.java de classe avec des méthodes telles que: persistent2BeanCollection (...), persistent2BeanMap (...), bean2Persistent:
static final public CarBean persistant2Bean(CarPersist) {
return new CarBean(cartPersist.getId(), carPersist.getName(),
carPersist.getDescription());
}
D'autres méthodes sont (...), bean2PersistentCollection (...)
Cela devient une tâche fastidieuse lors de la gestion de collections, en particulier lorsque la même entité a des références à plusieurs autres entités;
J'ai réfléchi à l'utilisation du framework DOZER pour gérer le mappage entre les entités et les DTO. Il est parlé ici: http://code.google.com/intl/fr/webtoolkit/articles/using_gwt_with_hibernate.html
Cependant je ne suis pas sûr de savoir comment il gère les différentes applications JPA (de ManyToMany par exemple) et la quantité de travail est de le configurer dans le fichier dozer-haricot mappings.xml. En outre, je suppose que ce cadre utilise intensivement la réflexion pour effectuer des opérations de mappage. Une telle approche est beaucoup plus lente que la cartographie effectuée "à la main", par ex. quand j'utilise les méthodes de ma classe MyEntityTransform.java.
Que suggérez-vous? Je suis intéressé par l'expérience de tout le monde en matière de gestion des entités JPA avec GWT.
Merci.
Celinio
http://www.celinio.net/techblog
Merci pour vos commentaires. Je ne suis pas sûr de ce que je ferai, car la performance pourrait en souffrir parce que Dozer utilise intensivement la réflexion pour mapper les entités aux DTO. –
Jetez un oeil à la FAQ du Dozer: http://dozer.sourceforge.net/documentation/faq.html#dozer-perf. Quand la performance est vraiment un problème qui vous préoccupe, je pense que vous devez référencer différents frameworks avant de commencer votre projet. – malte