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; ...@@ -6,10 +6,10 @@ import java.util.HashSet;
import java.util.Set; import java.util.Set;
@Entity @Entity
@Table(name = "repositorios") @Table(name = "biblioteca_personal")
@Getter @Getter
@NoArgsConstructor @NoArgsConstructor
public class Repositorio { public class BibliotecaPersonal {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
...@@ -19,11 +19,10 @@ public class Repositorio { ...@@ -19,11 +19,10 @@ public class Repositorio {
@JoinColumn(name = "usuario_id", nullable = false, unique = true) @JoinColumn(name = "usuario_id", nullable = false, unique = true)
private Usuario usuario; private Usuario usuario;
@OneToMany(mappedBy = "repositorio") @OneToMany(mappedBy = "bibliotecaPersonal")
private Set<RepositorioRecurso> recursos = new HashSet<>(); private Set<BibliotecaPersonalRecurso> recursos = new HashSet<>();
public Repositorio(Usuario usuario) { public BibliotecaPersonal(Usuario usuario) {
this.usuario = usuario; this.usuario = usuario;
} }
}
}
\ No newline at end of file
...@@ -4,18 +4,18 @@ import jakarta.persistence.*; ...@@ -4,18 +4,18 @@ import jakarta.persistence.*;
import lombok.*; import lombok.*;
@Entity @Entity
@Table(name = "repositorio_recurso") @Table(name = "biblioteca_personal_recurso")
@Getter @Getter
@NoArgsConstructor @NoArgsConstructor
public class RepositorioRecurso { public class BibliotecaPersonalRecurso {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id; private Long id;
@ManyToOne @ManyToOne
@JoinColumn(name = "repositorio_id", nullable = false) @JoinColumn(name = "biblioteca_personal_id", nullable = false)
private Repositorio repositorio; private BibliotecaPersonal bibliotecaPersonal;
@ManyToOne @ManyToOne
@JoinColumn(name = "recurso_id", nullable = false) @JoinColumn(name = "recurso_id", nullable = false)
...@@ -25,10 +25,9 @@ public class RepositorioRecurso { ...@@ -25,10 +25,9 @@ public class RepositorioRecurso {
@Column(nullable = false) @Column(nullable = false)
private Categoria categoria; private Categoria categoria;
public RepositorioRecurso(Repositorio repositorio, Recurso recurso, Categoria categoria) { public BibliotecaPersonalRecurso(BibliotecaPersonal bibliotecaPersonal, Recurso recurso, Categoria categoria) {
this.repositorio = repositorio; this.bibliotecaPersonal = bibliotecaPersonal;
this.recurso = recurso; this.recurso = recurso;
this.categoria = categoria; this.categoria = categoria;
} }
} }
...@@ -38,14 +38,14 @@ public class Usuario { ...@@ -38,14 +38,14 @@ public class Usuario {
@OneToOne(mappedBy = "usuario", cascade = CascadeType.ALL) @OneToOne(mappedBy = "usuario", cascade = CascadeType.ALL)
private Repositorio repositorio; private BibliotecaPersonal bibliotecaPersonal;
public Usuario(String email, String nombreUsuario, String contrasenia) { public Usuario(String email, String nombreUsuario, String contrasenia) {
this.email = email; this.email = email;
this.nombreUsuario = nombreUsuario; this.nombreUsuario = nombreUsuario;
this.contrasenia = contrasenia; this.contrasenia = contrasenia;
this.rol = "USUARIO_REGISTRADO"; 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