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)