Desde mi punto de vista, la configuración o el código java para mapear algunas propiedades especiales siempre son necesarios.
Aquí quiero tomar un DO
y DTO
por ejemplo
DO:{
id: "id",
name:"name",
doName1: "doName1",
nestedObj: {
id: "nestedObjId",
name: "nestedObjName"
}
}
DTO{
id: "",
name: "",
name1: "" // for mapping doName1 in DO.
nestedId: "", //for DT.nestObj.id
nestedName: "", //for DT.nestObj.name
}
Para bulldozer o Orika ambos pueden coincidir automáticamente Identificación y la propiedad de nombres entre DO y DTO sin ningún código de configuración o java porque están con el mismos nombres de propiedad y tipos. Pero si quiere DO.doName1
< ---->DTO.name1
o DO.nestedObj.id
< --->DTO.nestedId
necesita hacer alguna configuración (a través de xml o java) para decirle a la herramienta de asignación que tiene la intención de hacer eso. Creo que para su caso de uso, Dozer, Orika y ModelMapper están bien. Pero para mí estoy cambiando mi proyecto de bulldozer a Orika para fines de rendimiento. Aunque Orika no es tan maduro como bulldozer, no es tan inteligente y me exige hacer mucho más trabajo para mantener mis configuraciones de mapeo personalizadas. Si su proyecto no se preocupa demasiado por el rendimiento, le recomendaré que use dozer, es muy fácil de usar y admite muchas funciones avanzadas. De lo contrario, si está comprando un alto rendimiento, le sugiero orika.
Otra opción sería http://jtransfo.org/. Esto permite que las asignaciones se definan usando anotaciones en el TO. Tiene la característica adicional de que puede tener conversiones de seguridad/opcionales basadas en etiquetas. –
eche un vistazo a https://github.com/amgohan/zebra/: (mapeo de objetos DIY y use zebra para una forma unificada de inyectar mapeadores.) Zebra viene con una forma simple y unificada de: crear sus mapeadores; gestiona mapeo unidireccional y reverso en una clase; registre sus cartógrafos y vuelva a utilizarlos en cualquier lugar de su aplicación; gestionar el mapeo profundo. – amgohan
Esta es una muy buena alternativa: http://modelmapper.org/ – cosbor11