He destacado en varias ocasiones a lo largo del curso la importancia de recuperar de la base de datos solo la información imprescindible. En el capítulo siete aplicamos este principio a las proyecciones, e insistí en favorecer el empleo de interfaces, DTOs y records
frente a entidades. En el presente lo aplicaremos a la cantidad de registros a recuperar.
Curso Spring Data JPA. 8: ordenación
La ordenación de los resultados de las consultas parece un asunto sencillo y con poco recorrido. Nada más alejado de la realidad; hay bastante de qué hablar, tal y como descubrirás en este capítulo.
Seguir leyendo
Testing Spring Boot: Docker with Testcontainers and JUnit 5. MySQL and other images.
When approaching the design of integration and end-to-end tests, we have to decide what to do with the external systems that our application uses. The most typical case is databases. In addition, we must remember that creating test doubles objects defeats the purpose of this type of testing.
READ MORECurso Spring Data JPA. 7: proyecciones personalizadas con interfaces, DTOs y records.
Hasta ahora, las consultas que hemos implementado en el curso (derivadas y JPQL) retornan entidades o un único valor escalar (una cadena, un número, un lógico). Una limitación importante porque nos impide proyectar cualquier conjunto de datos. Asimismo, está el hecho, nada evidente, de que recuperar entidades tiene implicaciones que no siempre necesitamos asumir.
Seguir leyendoCurso Spring Data JPA. 6: consultas JPQL con @Query
Las consultas derivadas son el epítome de la sencillez. Apenas se requiere práctica para alcanzar soltura en su escritura. En este capítulo descubrirás por qué necesitamos la potencia de las consultas JPQL y cómo se usan en Spring Data JPA.
Seguir leyendo
Curso Spring Data JPA. 5: consultas derivadas (derived queries)
¡Llegó el momento de añadir tus propias consultas a los repositorios! De las variadas alternativas que exploraremos en el curso, empecemos por la más sencilla y sorprendente.
Seguir leyendo
Curso Spring Data JPA. 4: transacciones con @Transactional
A priori, la transaccionalidad parece un concepto demasiado avanzado como para introducirlo al principio del curso, incluso algo tangencial al tema principal. No obstante, resulta necesario conocerlo para trabajar de forma adecuada con JPA y, por extensión, con Spring Data JPA.
Seguir leyendoCurso Spring Data JPA. 3: repositorios
Spring Data se fundamenta en el concepto de repositorio. Ya vimos una pequeña y sorprendente muestra al final del primer capítulo. En el presente exploraremos este concepto poniendo el foco en el mundo JPA.
Seguir leyendoCurso Spring Data JPA. 2: proyecto de ejemplo
En este capítulo construiremos el proyecto de ejemplo del curso. Dado que nos centraremos en Spring Data JPA, no debe requerir grandes conocimientos de Spring Framework y JPA. Cuanto más simple, mejor.
Seguir leyendoSpring Framework: asynchronous methods with @Async, Future and TaskExecutor
Spring Framework supports asynchronous execution of public methods of beans. They will be executed on their own thread without blocking the execution of the code that calls them. If you leverage this feature where appropriate, you will effortlessly boost the performance of your code. That’s the power of the @Async
annotation that we will examine in this post. Make the most of it! 🚀
Curso Spring Data JPA. 1: introducción
¡Bienvenid@ a mi curso! Si no conoces Spring Data, tendrás preguntas del estilo: ¿qué problema soluciona? ¿qué es capaz de hacer? En esta introducción encontrarás las respuestas, así como una primera demostración de sus prodigios.
Seguir leyendoSpring BOOT and JSP integration
Jakarta Server Pages (JSP), previously known as Java Server Pages, is the dynamic web page standard technology proposed by Java. Today it can be considered a relic of the past, as we have had template engines, such as Thymeleaf, that offer better capabilities for years. Moreover, the current trend is to create JavaScript clients with frameworks like Angular or React, which interact with REST APIs.
READ MORE