Saltar al contenido

ModelMapper, lista de mapeo de Entidades a Lista de objetos DTO

Esta cuestión se puede abordar de diversas formas, pero nosotros te compartimos la respuesta más completa para nosotros.

Solución:

Puedes crear una clase de utilidad:

public class ObjectMapperUtils 

    private static ModelMapper modelMapper = new ModelMapper();

    /**
     * Model mapper property setting are specified in the following block.
     * Default property matching strategy is set to Strict see @link MatchingStrategies
     * Custom mappings are added using @link ModelMapper#addMappings(PropertyMap)
     */
    static 
        modelMapper = new ModelMapper();
        modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
    

    /**
     * Hide from public usage.
     */
    private ObjectMapperUtils() 
    

    /**
     * 

Note: outClass object must have default constructor with no arguments

* * @param type of result object. * @param type of source object to map from. * @param entity entity that needs to be mapped. * @param outClass class of result object. * @return new object of outClass type. */ public static D map(final T entity, Class outClass) return modelMapper.map(entity, outClass); /** *

Note: outClass object must have default constructor with no arguments

* * @param entityList list of entities that needs to be mapped * @param outCLass class of result list element * @param type of objects in result list * @param type of entity in entityList * @return list of mapped object with type. */ public static List mapAll(final Collection entityList, Class outCLass) return entityList.stream() .map(entity -> map(entity, outCLass)) .collect(Collectors.toList()); /** * Maps @code source to @code destination. * * @param source object to map from * @param destination object to map to */ public static D map(final S source, D destination) modelMapper.map(source, destination); return destination;

Y úsalo para tus necesidades:

List listOfPostDTO = ObjectMapperUtils.mapAll(listOfPosts, PostDTO.class);

teniendo en cuenta que tiene una lista de Entidad de publicación (postEntityList) y una clase PostDTO, puede intentar lo siguiente:

use las siguientes importaciones para obtener los resultados deseados

import org.modelmapper.ModelMapper;
import org.modelmapper.TypeToken;
import java.lang.reflect.Type;

usa el siguiente código

Type listType = new TypeToken>().getType();
List postDtoList = modelmapper.map(postEntityList,listType);

ya que desea convertir Entity a Dto, puede probar el siguiente

List entityToDto = modelMapper.map(postEntity, new TypeToken>().getType());

valoraciones y reseñas

Recuerda que tienes autorización de agregar una reseña si hallaste tu impedimento a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *