J'emprunte la signification de «tranche» de C++.Comment «découper» un POJO
Disons que je Hava simple POJO qui est persisté via Hibernate:
class Person {
private long id;
private String name;
...
// getters and setters here
...
}
Maintenant, lorsque je récupère un objet à partir de la base de données, je sais qu'il a été « instrumentée » par Hibernate (sa classe réelle est une personne- dérivé généré automatiquement). Je veux le convertir en un objet personne "simple". Tnat serait utilisé, par exemple, pour soumettre l'objet à XStream et avoir le résultat contenant uniquement ce que contient Person. Je pourrais le faire en définissant un constructeur de copie, mais je ne veux pas avoir le tracas d'avoir à écrire des constructeurs de copie pour chaque classe ORM (sans parler de la violation du principe DRY).
Je me demandais si
a) est-il déjà une lib Java qu'il fait? b) Si non, serait-il pratique d'en écrire un en utilisant la réflexion?
Dans le cas de (b), des recommandations/directives/squelettes de code seraient appréciés.
C'est une solution parfaite. Il résout même un autre problème que je n'ai pas mentionné, le fait que les relations un-à-plusieurs doivent être représentées comme des conteneurs dans l'objet persistant et comme des tableaux dans l'objet XML-ed. Merci beaucoup. –
Le but réel de Dozer est de mapper de TypeA à TypeB, et de pouvoir stocker ce mapping dans les configs XML plutôt que dans le code Java, donc ce serait parfait pour cette utilisation aussi (vraiment mappage d'un type à un autre). –