Commit 6ac1b13c by Rubén Ramírez

feat: [RepositorioRecursos]: Añadidas las funciones para las búsquedas en el repositorio

parent 06f441ea
package com.ujaen.tfg.mangaffinity.repositorios;
import com.ujaen.tfg.mangaffinity.entidades.Genero;
import com.ujaen.tfg.mangaffinity.entidades.Recurso;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.util.List;
@Repository
......@@ -18,6 +20,7 @@ public class RepositorioRecurso {
em.persist(recurso);
}
@Transactional(readOnly = true)
public List<Recurso> buscarPorTitulo(String titulo) {
return em.createQuery(
"SELECT r FROM Recurso r WHERE LOWER(TRANSLATE(r.titulo, 'ÁÉÍÓÚáéíóú', 'AEIOUaeiou')) " +
......@@ -27,8 +30,36 @@ public class RepositorioRecurso {
.getResultList();
}
@Transactional(readOnly = true)
public List<Recurso> buscarPorAutor(String autor) {
return em.createQuery(
"SELECT r FROM Recurso r WHERE LOWER(r.autor) LIKE LOWER(:autor)",
Recurso.class)
.setParameter("autor", "%" + autor + "%")
.getResultList();
}
@Transactional(readOnly = true)
public List<Recurso> buscarPorGenero(Genero genero) {
return em.createQuery(
"SELECT r FROM Recurso r JOIN r.generos g WHERE g = :genero",
Recurso.class)
.setParameter("genero", genero)
.getResultList();
}
@Transactional(readOnly = true)
public List<Recurso> buscarPorRangoFechas(LocalDate fechaInicio, LocalDate fechaFin) {
return em.createQuery(
"SELECT r FROM Recurso r WHERE r.fechaPublicacion BETWEEN :inicio AND :fin",
Recurso.class)
.setParameter("inicio", fechaInicio)
.setParameter("fin", fechaFin)
.getResultList();
}
public Recurso merge(Recurso recurso) {
return em.merge(recurso);
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment