2017-06-16 4 views
0

J'essaye Orika et je me demande si vous devez avoir un setter public pour que le mapping fonctionne?Orika doit avoir un accesseur public

J'ai essayé sans setter, il ne fonctionne pas, ni essayer de dire explicitement byDefault():

factory.classMap(Page.class, PageResource.class).byDefault().register(); 

des commentaires sur celui-ci?

Répondre

1

Dans la configuration Orika par défaut, les objets mappés doivent suivre la spécification JavaBean avec getter/setter. Une autre façon possible est, ayant des champs publics.

Pour modifier ce comportement, vous pouvez écrire le vôtre PropertyResolverStrategy et le configurer.

DefaultMapperFactory build = new DefaultMapperFactory.Builder() 
      .propertyResolverStrategy(new MyCustomPropertyResolvingStrategy()) 
      .build(); 

voir le documentation ou le code Orika pour plus d'informations sur ce sujet.

+0

Salut, merci pour votre réponse, semble qu'il est assez complexe d'implémenter un résolveur de propriété personnalisée en utilisant l'introspection pour définir la valeur et non pas les setters – Seb