persistencia objetos mapeo ejemplo datos java mapping dto

objetos - mapeo en java



¿Alguna herramienta para java objeto a objeto de mapeo? (10)

Estoy tratando de convertir DO a DTO usando java y buscando una herramienta automatizada antes de comenzar a escribir la mía. Solo quería saber si hay alguna herramienta gratuita disponible para el mismo.


Estoy feliz de agregar Moo como una opción, aunque claramente estoy predispuesto a ello: http://geoffreywiseman.github.com/Moo/

Es muy fácil de usar para casos simples, razonablemente capaces de casos más complejos, aunque todavía hay algunas áreas en las que puedo imaginar cómo mejorarlo para complejidades aún mayores.


Hay algunas bibliotecas por ahí

  • Commons-BeanUtils : ConvertUtils -> Métodos de utilidad para convertir valores escalares de cadenas a objetos de la clase especificada, Matrices de cadenas a matrices de la clase especificada.

  • Commons-Lang : ArrayUtils -> Operaciones en matrices, matrices primitivas (como int []) y matrices de envoltura primitivas (como Entero []).

  • Commons-Convert : Commons-Convert tiene como objetivo proporcionar una única biblioteca dedicada a la tarea de convertir un objeto de un tipo a otro. La primera etapa se centrará en las conversiones de Objeto a Cadena y Cadena a Objeto.

  • Marco de Spring : Spring tiene un excelente soporte para PropertyEditors, que también se puede usar para transformar objetos de / a cadenas.

  • Dozer : Dozer es un potente y simple mapeador de Java Bean a Java Bean que copia recursivamente datos de un objeto a otro. Normalmente, estos Java Beans serán de diferentes tipos complejos.

  • ModelMapper : ModelMapper es un marco inteligente de mapeo de objetos que automáticamente asigna objetos entre sí. Utiliza un enfoque basado en convenciones para asignar objetos mientras proporciona una API segura de refactorización simple para manejar casos de uso específicos.

  • MapStruct : MapStruct es un generador de código de tiempo de compilación para mapeos de bean, que resulta en un código de mapeo rápido (sin uso de reflexión o similar), sin dependencia y de tipo seguro en el tiempo de ejecución.

  • Orika : Orika utiliza la generación de códigos de bytes para crear mapeadores rápidos con una sobrecarga mínima.

  • Selma : Generador de código en tiempo de compilación para mapeos.

  • JMapper : Generación de asignadores de Bean usando Annotation, XML o API

  • Smooks : El Smooks JavaBean Cartridge le permite crear y poblar objetos Java a partir de los datos de sus mensajes (es decir, vincular los datos a) (sugerido por la superfilina en los comentarios).

  • Transmorph : Transmorph es una biblioteca java gratuita utilizada para convertir un objeto Java de un tipo en un objeto de otro tipo (con otra firma, posiblemente parametrizada). (Parece muerto, última actualización 2013)

  • EZMorph : EZMorph es una biblioteca java simple para transformar un Objeto en otro Objeto. Admite transformaciones para primitivos y objetos, para matrices multidimensionales y transformaciones con DynaBeans (parece muerto, última actualización en 2008)

  • Morph : Morph es un marco de Java que facilita la interoperabilidad interna de una aplicación. A medida que la información fluye a través de una aplicación, experimenta múltiples transformaciones. Morph proporciona una forma estándar de implementar estas transformaciones. (parece muerto, última actualización 2008)

  • Lorentz : Lorentz es un marco de conversión de objeto a objeto genérico. Proporciona una API simple para convertir objetos Java de un tipo en un objeto de otro tipo. (parece muerto)

  • OTOM : Con OTOM, puedes copiar cualquier dato de cualquier objeto a cualquier otro objeto. Las posibilidades son infinitas. Bienvenidos a "Otoño". (parece muerto)



Otro es Orika - Orika

Orika es un marco de mapeo Java Bean que copia recursivamente (entre otras capacidades) datos de un objeto a otro. Puede ser muy útil cuando se desarrollan aplicaciones de múltiples capas.

Orika se enfoca en automatizar tanto como sea posible, mientras proporciona personalización a través de la configuración y la extensión donde sea necesario.

Orika permite al desarrollador:

  • Mapear objetos complejos y profundamente estructurados.
  • "Aplanar" o "Expandir" objetos asignando propiedades anidadas a propiedades de nivel superior y viceversa
  • Cree mapeadores sobre la marcha y aplique personalizaciones para controlar algunos o todos los mapas.
  • Cree convertidores para tener un control completo sobre la asignación de un conjunto específico de objetos en cualquier lugar del gráfico de objetos, por tipo o incluso por nombre de propiedad específica
  • Manejar proxies u objetos mejorados (como los de Hibernate o los diversos marcos simulados)
  • Aplicar mapeo bidireccional con una configuración
  • Asignar a instancias de una clase concreta apropiada para una clase abstracta abstracta o interfaz
  • Manejar mapeos inversos
  • Manejar convenciones complejas más allá de las especificaciones de JavaBean.

Orika utiliza la generación de códigos de bytes para crear mapeadores rápidos con una sobrecarga mínima.


Podrías probar Dozer .

Dozer es un asignador de Java Bean a Java Bean que copia recursivamente los datos de un objeto a otro. Normalmente, estos Java Beans serán de diferentes tipos complejos.

Dozer admite la asignación de propiedades simple, la asignación de tipos complejos, la asignación bidireccional, la asignación implícita-explícita, así como la asignación recursiva. Esto incluye atributos de colección de mapeo que también necesitan mapeo en el nivel de elemento.



También puede probar el marco de mapeo basado en Dozer, pero con la declaración de mapeo de Excel. Tienen algunas herramientas y características interesantes adicionales. Compruebe en http://openl-tablets.sf.net/mapper


Te sugiero que pruebes JMapper Framework .

Es un mapeador de bean Java a Java, que le permite realizar el paso de datos dinámicamente con anotaciones y / o XML.

Con JMapper puedes:

  • Crear y enriquecer objetos de destino.
  • Aplicar una lógica específica al mapeo.
  • Gestiona automáticamente el archivo XML
  • Implementar las relaciones 1 a N y N a 1.
  • Implementar conversiones explícitas
  • Aplicar configuraciones heredadas.

Utilice Apache commons beanutils:

static void copyProperties(Object dest, Object orig) copie los valores de propiedad del bean de origen al bean de destino para todos los casos en los que los nombres de propiedad sean los mismos.

http://commons.apache.org/proper/commons-beanutils/


ModelMapper es otra biblioteca que vale la pena revisar. El diseño de ModelMapper es diferente de otras bibliotecas en que:

  • Mapea automáticamente los modelos de objetos al combinar inteligentemente las propiedades de origen y destino
  • Proporciona una API de asignación segura de refactorización que utiliza código real para asignar campos y métodos en lugar de usar cadenas
  • Utiliza la configuración basada en convenciones para el manejo simple de escenarios personalizados

Visite el sitio de ModelMapper para obtener más información:

http://modelmapper.org