Todos los usuarios que contienen la “U”, no importa si al incio o al final, porque se usa los comodines “%%”, para los que inicien con determinada letra es “letra%”, para los que finalicen es “%letra”.
Introducción a Spring Boot
¿Qué es Spring Boot?
Características principales de Spring Boot
Instalación de entorno de desarrollo: Windows
Instalación de entorno de desarrollo: macOS
Instalación de entorno de desarrollo: Ubuntu
Dependencias en Spring Boot
¿Qué es una dependencia?
Inversión de control y el patrón de inyección de dependencias
Autoconfiguration y runtime
Anotaciones para indicar dependencias en Spring Boot
Creación de proyecto bajo arquitectura de dependencias
Inyección de dependencia "Component"
Ejemplo de creación de dependencia propia
Configuración general de Spring Boot
Cambio de puerto y path
Uso de properties y valores
Uso de properties con ejemplo de generación de POJO
Qué son los logs y cómo usarlos
JPA con Spring y Spring Data
Modelado de entidades con JPA
Configuración de datasource con properties y classes
Registro en base de datos con JpaRepository
Uso de JPQL en anotación query
Uso de anotación value para apuntar a properties
Obtención de información usando Query methods
Uso de Query methods con Or, and, OrderBy, Between, Sort
Uso de JPQL con named parameters
Uso de anotación transactional
Rollback con la anotación transactional
REST con Spring Boot
CRUD bajo arquitectura REST
Métodos CREATE, UPDATE y DELETE
Probando la API REST
Pagination con Spring Boot
Conclusiones
Sigue aprendiendo Spring Boot
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 13
Preguntas 4
Todos los usuarios que contienen la “U”, no importa si al incio o al final, porque se usa los comodines “%%”, para los que inicien con determinada letra es “letra%”, 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 ‘birthDate’ found for type ‘User’! Did you mean ‘‘birthdate’’?
_
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 “findByBirthDateBetween” les recomiendo revisen el constructor de User ya que por error nombre el campo “birthday” por lo que mi query method debia ser “findBybirthdayBetween”
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));
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?