diff --git a/Dockerfile b/Dockerfile index e045243..42a044d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ -FROM eclipse-temurin:17 +FROM eclipse-temurin:21 RUN apt-get update && apt-get -y install \ - openjdk-17-jdk \ + openjdk-21-jdk \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* diff --git a/src/main/java/pe/edu/utp/controller/ArticuloController.java b/src/main/java/pe/edu/utp/controller/ArticuloController.java index d31aa28..707c16c 100644 --- a/src/main/java/pe/edu/utp/controller/ArticuloController.java +++ b/src/main/java/pe/edu/utp/controller/ArticuloController.java @@ -26,6 +26,7 @@ import pe.edu.utp.exception.NoDataFoundException; import pe.edu.utp.service.ArticuloService; import pe.edu.utp.util.ApiResponse; +import pe.edu.utp.util.ConvertUtil; @RestController @RequestMapping("/articulos") @@ -79,6 +80,7 @@ public ResponseEntity update( @PathVariable("id") Integer id, @Valid @RequestBody ArticuloDto articuloDto ) { + log.info("Article update object: {}", ConvertUtil.jsonAsString(articuloDto)); Articulo articuloUpdate = articuloService.update(articuloDto, id); return ResponseEntity.ok(articuloUpdate); } diff --git a/src/main/java/pe/edu/utp/repository/ArticuloRepository.java b/src/main/java/pe/edu/utp/repository/ArticuloRepository.java index 4ceca81..93473b3 100644 --- a/src/main/java/pe/edu/utp/repository/ArticuloRepository.java +++ b/src/main/java/pe/edu/utp/repository/ArticuloRepository.java @@ -2,9 +2,11 @@ import java.util.List; +import jakarta.persistence.QueryHint; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.data.jpa.repository.QueryHints; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; @@ -21,6 +23,15 @@ public interface ArticuloRepository extends JpaRepository { AND (:precioMax IS NULL OR a.precio <= :precioMax) """ ) + @QueryHints( + { + @QueryHint(name = "org.hibernate.readOnly", value = "true"), + @QueryHint(name = "org.hibernate.fetchSize", value = "50"), + @QueryHint(name = "org.hibernate.cacheable", value = "true"), + @QueryHint(name = "jakarta.persistence.cache.retrieveMode", value = "USE"), + @QueryHint(name = "jakarta.persistence.cache.storeMode", value = "USE"), + } + ) List findByCategoriaAndMarcaAndPrecioBetween( @Param("categoria") String categoria, @Param("marca") String marca, diff --git a/src/main/java/pe/edu/utp/security/SecurityConfiguration.java b/src/main/java/pe/edu/utp/security/SecurityConfiguration.java index 2765bc9..8a3be9c 100644 --- a/src/main/java/pe/edu/utp/security/SecurityConfiguration.java +++ b/src/main/java/pe/edu/utp/security/SecurityConfiguration.java @@ -2,7 +2,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; @@ -26,9 +25,6 @@ public class SecurityConfiguration { private final JwtAuthenticationFilter jwtAuthenticationFilter; - @Value("${spring.security.disabled:false}") - private boolean disabledSecurity; - /* * Sprign security detecta un bean UserDetailsService y un PasswordEncoder, * y automaticamente va a configurar una instancia de DaoAuthenticationProvider diff --git a/src/main/java/pe/edu/utp/util/ConvertUtil.java b/src/main/java/pe/edu/utp/util/ConvertUtil.java new file mode 100644 index 0000000..f356b8e --- /dev/null +++ b/src/main/java/pe/edu/utp/util/ConvertUtil.java @@ -0,0 +1,18 @@ +package pe.edu.utp.util; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +public class ConvertUtil { + + private ConvertUtil() {} + + public static String jsonAsString(Object obj) { + try { + return new ObjectMapper().writeValueAsString(obj); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index db172be..a8219f1 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -12,6 +12,8 @@ spring.datasource.url=jdbc:mysql://${DATASOURCE_HOSTNAME}:${DATASOURCE_PORT}/${D spring.datasource.username=${DATASOURCE_USERNAME} spring.datasource.password=${DATASOURCE_PASSWORD} spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect +#Util para ver info relacionado a tiempos q tarda una consulta +#spring.jpa.properties.hibernate.generate_statistics=true spring.jpa.hibernate.ddl-auto=none logging.level.root=INFO @@ -19,7 +21,6 @@ logging.level.org.hibernate.type=INFO logging.level.web=INFO spring.flyway.baseline-on-migrate=true -spring.security.disabled=${SECURITY_DISABLED:false}