Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
languagejava
collapsetrue
//Como hemos visto, para pasar un solo objeto de entidad a DTO o viceversa disponemos del constructor correspondiente. 
//Para todos los objetos de una lista a su otra forma, podríamos hacerlo con un for sin problemas, pero podemos hacerlo de una forma más simple utilizando expresiones lambda. 
//A continuación tenemos un ejemplo con ambas formas de hacerlo, y podemos ver que el código queda más breve utilizando la expresión lambda:

		final List<AlumnoTitulacion> lista = alumnoTitulacionRepository.findAll();
		
		// Con un for
		final List<AlumnoTitulacionDTO> listaDTOfor = new ArrayList<AlumnoTitulacionDTO>();
		for(AlumnoTitulacion x : lista) {
			listaDTOfor.add( new AlumnoTitulacionDTO(x) );
		}
		
		// Con una expresión lambda
		final List<AlumnoTitulacionDTO> listaDTOlambda = lista.stream().map( x -> new AlumnoTitulacionDTO( x ) ).collect( Collectors.toList() );

//Se pueden usar las dos formas indistintamente, según la forma que se prefiera.


ModelMapper

Una herrramienta que nos puede simplificar la conversión entre entidades y DTOs es ModelMapper. Es posible mapear los objetos complejos, es decir, los que tienen otros tipos anidados. Para utilizarlo, primero tenemos que declarar el bean en nuestro SecurityConfig.java, incluyendo la configuración de la estrategia de matching para que, como hemos dicho, se pueda hacer el mapeo complejo:

...