Commit 758e7cc9 by Rubén Ramírez

feat: [RepositorioBibliotecaPersonalRecurso]: Añadidos los métodos en el…

feat: [RepositorioBibliotecaPersonalRecurso]: Añadidos los métodos en el repositorio para listar por categorías y para añadir
parent 4594c7b2
......@@ -6,10 +6,10 @@ import java.util.HashSet;
import java.util.Set;
@Entity
@Table(name = "repositorios")
@Table(name = "biblioteca_personal")
@Getter
@NoArgsConstructor
public class Repositorio {
public class BibliotecaPersonal {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
......@@ -19,11 +19,10 @@ public class Repositorio {
@JoinColumn(name = "usuario_id", nullable = false, unique = true)
private Usuario usuario;
@OneToMany(mappedBy = "repositorio")
private Set<RepositorioRecurso> recursos = new HashSet<>();
@OneToMany(mappedBy = "bibliotecaPersonal")
private Set<BibliotecaPersonalRecurso> recursos = new HashSet<>();
public Repositorio(Usuario usuario) {
public BibliotecaPersonal(Usuario usuario) {
this.usuario = usuario;
}
}
\ No newline at end of file
}
......@@ -4,18 +4,18 @@ import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "repositorio_recurso")
@Table(name = "biblioteca_personal_recurso")
@Getter
@NoArgsConstructor
public class RepositorioRecurso {
public class BibliotecaPersonalRecurso {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne
@JoinColumn(name = "repositorio_id", nullable = false)
private Repositorio repositorio;
@JoinColumn(name = "biblioteca_personal_id", nullable = false)
private BibliotecaPersonal bibliotecaPersonal;
@ManyToOne
@JoinColumn(name = "recurso_id", nullable = false)
......@@ -25,10 +25,9 @@ public class RepositorioRecurso {
@Column(nullable = false)
private Categoria categoria;
public RepositorioRecurso(Repositorio repositorio, Recurso recurso, Categoria categoria) {
this.repositorio = repositorio;
public BibliotecaPersonalRecurso(BibliotecaPersonal bibliotecaPersonal, Recurso recurso, Categoria categoria) {
this.bibliotecaPersonal = bibliotecaPersonal;
this.recurso = recurso;
this.categoria = categoria;
}
}
......@@ -38,14 +38,14 @@ public class Usuario {
@OneToOne(mappedBy = "usuario", cascade = CascadeType.ALL)
private Repositorio repositorio;
private BibliotecaPersonal bibliotecaPersonal;
public Usuario(String email, String nombreUsuario, String contrasenia) {
this.email = email;
this.nombreUsuario = nombreUsuario;
this.contrasenia = contrasenia;
this.rol = "USUARIO_REGISTRADO";
this.repositorio = new Repositorio(this);
this.bibliotecaPersonal = new BibliotecaPersonal(this);
}
}
package com.ujaen.tfg.mangaffinity.repositorios;
import com.ujaen.tfg.mangaffinity.entidades.BibliotecaPersonalRecurso;
import com.ujaen.tfg.mangaffinity.entidades.Categoria;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Repository
@Transactional
public class RepositorioBibliotecaPersonalRecurso {
@PersistenceContext
private EntityManager em;
public void anadirRecursoBiblioteca(BibliotecaPersonalRecurso bibliotecaPersonalRecurso) {
em.persist(bibliotecaPersonalRecurso);
}
@Transactional(readOnly = true)
public List<BibliotecaPersonalRecurso> listarPorCategoria(Long bibliotecaPersonalId, Categoria categoria) {
return em.createQuery(
"SELECT bpr FROM BibliotecaPersonalRecurso bpr WHERE bpr.bibliotecaPersonal.id = :bibliotecaPersonalId AND bpr.categoria = :categoria",
BibliotecaPersonalRecurso.class)
.setParameter("bibliotecaPersonalId", bibliotecaPersonalId)
.setParameter("categoria", categoria)
.getResultList();
}
}
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