No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Uso de Query methods con Or, and, OrderBy, Between, Sort

23/31
Recursos

Aportes 13

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Todos los usuarios que contienen la 鈥淯鈥, no importa si al incio o al final, porque se usa los comodines 鈥%%鈥, para los que inicien con determinada letra es 鈥渓etra%鈥, para los que finalicen es 鈥%letra鈥.

Respecto al metodo findByBirthDateBetween:
Es interesante que segu铆 tal cual como lo hizo el profe pero me sal铆a el siguiente error:
_> Failed to create query for method public abstract java.util.List com.fundamentos.springboot.fundamentos.repository.UserRepository.findByBirthDateBetween(java.time.LocalDate,java.time.LocalDate)! No property 鈥榖irthDate鈥 found for type 鈥楿ser鈥! Did you mean 鈥樷榖irthdate鈥欌?
_
Leyendo los comentarios en anteriores clases vi que a traves del nombre de los metodos spring intenta hacer la consulta, y claro, al tener el atributo birthdate y no BirthDate no lo reconocia claramente.
Solo tuve que cambiar el nombre del metodo a findBybirthdateBetween y se solucion贸.
Esta circuntancia dio mas validez a lo que decian mis compa帽eros.
Saludos y nunca par茅is de aprender.

Creo que no me esta tomando en cuenta los parametros donde agrego un 鈥%%鈥

si les marca error en el query method 鈥渇indByBirthDateBetween鈥 les recomiendo revisen el constructor de User ya que por error nombre el campo 鈥渂irthday鈥 por lo que mi query method debia ser 鈥渇indBybirthdayBetween鈥

Comparto el reto, En este caso selecciono los registros cuyo nombre inicie por user, y cuya fecha de nacimiento est茅 dentro
de un rango. Adicionalmente ordeno la salida en forma descendente:

    List<User> findByNameLikeAndBirtDateBetweenOrderByIdDesc(String name, LocalDate begin, LocalDate end);

		userRepository.findByNameLikeAndBirtDateBetweenOrderByIdDesc("user%",LocalDate.of(2021,3,1),LocalDate.of(2021,6,30))
				.stream()
				.forEach(user -> LOGGER.info("Usuario encontrado con Like entre dos fechas y ordenado " + user));

RETO

List<User> findByEmailContainingOrBirthDateBetween(String email,LocalDate begin, LocalDate end);

interesante alernativa a la hora de hacer select de de distintos tipos

Me parecio muy interesnate el manejo de query method, dejo link https://www.baeldung.com/spring-data-derived-queries

Usando And:

    List<User> findByNameContainingAndBirthDateBetween(String name, LocalDate init, LocalDate end);

Buenas noches,

comparto reto:

QUERY METHOD

List<User> findByNameContainingOrEmailContainingAndBirthDateOrderByIdDesc(String name, String email, LocalDate date);

EXECUTE QUERY METHOD

userRepository.findByNameContainingOrEmailContainingAndBirthDateOrderByIdDesc("J", "@modusoftware.com", LocalDate.of(2021, 07, 02))
                .stream()
                .forEach(user -> LOGGER.info("Reto (busqueda por algo que este en el contenido (nombre - correo) segun fecha y ordenado desendentemente " + user));

Gracias.

userRepository.findBybirthDateBetween(LocalDate.of(2022, 5, 1),
									LocalDate.of(2022, 6, 30))
				.stream()
				.forEach(user -> LOGGER.info("Usuario con intervalo de fechas: "+user));

RETOS

UserRepository.java

    List<User>findByNameOrBirthDateBetweenOrderByIdAsc(String name,LocalDate begin,LocalDate end);

FundamentosApplication.java

poner valores de acuerdo el registro ala db h2

userRepository.findByNameOrBirthDateBetweenOrderByIdAsc("roa",LocalDate.of(2022,03,04),LocalDate.of(2022,04,06))
				.stream().forEach(user -> LOGGER.info("Usuario findByNameOrBirthDateBetweenOrderByIdAsc: "+user));

Encontr茅 que se puede usar la funci贸n
In y NotIN

Aqu铆 comparto mis queryMethod, sin duda alguna un elemento demasiado potente, no s茅 si estoy en lo correcto pero lo veo como una ORM, es demasiado poderosa.

List<User> findByNameIn(List<String> name);

List<User> findByEmailNotIn(List<String>  Email);

userRepository.findByNameIn(Names)
				.stream()
				.forEach(user -> LOGGER.info("findByNameIn Usuarios Encontrados con User: "+user));

		userRepository.findByEmailNotIn(Emails)
				.stream()
				.forEach(email -> LOGGER.info("findByEmailNotIn  Usarios encontrados con Email: "+ email));