A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Uso de JPQL con named parameters

24/31
Recursos

Aportes 11

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Si est谩s viendo Spring y no te gust贸 Java ni Spring, y por ejemplo, trabajas con JS? considera que Nest.js o Angular es muy similar a Spring. No te podr谩s escapar f谩cilmente de los decorators 馃槢

Para los que tengan dudas de para que sirve una clase DTO (Data Transfer Object) les dejo el siguiente link donde se explica de manera detallada su uso.
https://www.oscarblancarteblog.com/2018/11/30/data-transfer-object-dto-patron-diseno/

El nombre de esta clase en el men煤 dice 鈥淯so de Query Methods con named parameters鈥, y en la clase dice 鈥淯so de JPQL con named parameters鈥, no comprendo porque realizar un Query Method con una sentencia JPQL, en el otro curso de Spring indican que los queries con JPQL se realizan cuando son queries complejos, comprendo que es un ejemplo; pero me confunde este ejemplo o el t铆tulo de esta clase. Ser谩 que en lugar de Query Method es el nombre del m茅todo que se quiere implementar utilizando JPQL, para el caso se le puede nombrar al m茅todo como GetAllByEmailAndBirthdate, ya que como Query Method este se llamar铆a FindAllByEmailAndBirthdate

A mi me marco un erro en en el constructor al usar JPQL. Resulta que UserDto deberia usar private LocalDate birthdate; en lugar de una String. Al cambiarlo asi, ya me funciona correctamente.

Los DTO en su escencia no deberian tener Contructores, solo Getters y Setters

Cuando se est谩 haciendo la sentencia JPQL hay que tener cuidado con los espacios en cada nueva lin茅a, por qu茅 luego concatena el string y aparecer铆a c贸mo una sola palabra

El m茅todo que se declaro dentro del repository es:

Optional<UserDto> getAllByBirthDateAndEmail鈥

El tipo de dato que retorno a un Optional de tipo <UserDto>

Revisando la sentencia SQL, esta sentencia dice, regresa todos los Usuario con birthDate y email tal, en ning煤n lado dice que solo retorne un registro.

Creo que ser铆a mejor cambiar el tipo de dato a retornar por List

List<UserDto> getAllByBirthDateAndEmail鈥

Muchas gracias Michael por el curso, me sirvi贸 mucho para poder arrancar mi primer proyecto: )

Named parameters
Son par谩metros que se env铆an a nivel de sentencias, estos par谩metros ser谩n inicializados dentro los par谩metros del m茅todo, represent谩ndolos por medio de la anotaci贸n @Param.

Cuidado con la indentaci贸n en el @Query(鈥 les puede salir error si la tienen mal

Pueden construir el DTO con Lombok asi:

@Data
@AllArgsConstructor
public class UserDto {
    
    private Long id;
    private String name;
    private LocalDate birthDate;
    
}

Una obviedad que sino est谩n atentos, no es tan obvia, siempre siempre siempre, f铆jense que las propiedades de su entity hagan match con las de sus DTO y Repository, SIEMPRE.