Commit 1f435592 by Rubén Ramírez

fix: [Capitulo]: Correcciones a la hora de trabajar con los capítulos de los recursos

parent c8cf46e8
......@@ -30,10 +30,10 @@ public class Capitulo {
@Column(nullable = false)
private TipoRecurso tipo;
@ElementCollection
@CollectionTable(name = "capitulo_fuentes", joinColumns = @JoinColumn(name = "capitulo_id"))
@OneToMany(mappedBy = "capitulo", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private List<FuenteCapitulo> fuentes = new ArrayList<>();
@ManyToOne
@JoinColumn(name = "recurso_id", nullable = false)
private Recurso recurso;
......
package com.ujaen.tfg.mangaffinity.entidades;
import jakarta.persistence.Embeddable;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.Getter;
import lombok.*;
@Embeddable
@Entity
@Table(name = "fuente_capitulos")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class FuenteCapitulo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
private String nombreFuente;
@NotBlank
private String urlFuente;
@ManyToOne
@JoinColumn(name = "capitulo_id", nullable = false)
private Capitulo capitulo;
}
......@@ -38,4 +38,10 @@ public class RepositorioCapitulo {
capitulo = em.merge(capitulo);
em.remove(capitulo);
}
@Transactional(readOnly = true)
public Capitulo buscarPorId(Long id) {
return em.find(Capitulo.class, id);
}
}
......@@ -5,14 +5,12 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class DTOCapitulo {
private Long id;
private int numero;
......
......@@ -11,4 +11,3 @@ public class DTOFuenteCapitulo {
private String nombreFuente;
private String urlFuente;
}
......@@ -6,6 +6,7 @@ import com.ujaen.tfg.mangaffinity.entidades.Recurso;
import com.ujaen.tfg.mangaffinity.entidades.Usuario;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
......@@ -20,7 +21,6 @@ public class Mapper {
return new Usuario(dtoUsuario.getEmail(), dtoUsuario.getNombreUsuario(), dtoUsuario.getContrasenia());
}
public DTORecurso dto(Recurso recurso) {
return new DTORecurso(
recurso.getId(),
......@@ -62,26 +62,36 @@ public class Mapper {
);
}
public Capitulo entity(DTOCapitulo dtoCapitulo, Recurso recurso) {
return new Capitulo(
Capitulo capitulo = new Capitulo(
dtoCapitulo.getNumero(),
dtoCapitulo.getTitulo(),
dtoCapitulo.getTipo(),
dtoCapitulo.getFuentes().stream()
.map(this::entity)
.collect(Collectors.toList()),
new ArrayList<>(),
recurso
);
if (dtoCapitulo.getFuentes() != null) {
List<FuenteCapitulo> fuentes = dtoCapitulo.getFuentes().stream()
.map(dtoFuente -> entity(dtoFuente, capitulo)) // Llamamos al mapper de FuenteCapitulo
.toList();
capitulo.setFuentes(fuentes);
}
return capitulo;
}
public DTOFuenteCapitulo dto(FuenteCapitulo fuente) {
return new DTOFuenteCapitulo(fuente.getNombreFuente(), fuente.getUrlFuente());
}
public FuenteCapitulo entity(DTOFuenteCapitulo dtoFuente) {
return new FuenteCapitulo(dtoFuente.getNombreFuente(), dtoFuente.getUrlFuente());
public FuenteCapitulo entity(DTOFuenteCapitulo dtoFuente, Capitulo capitulo) {
return new FuenteCapitulo(null, dtoFuente.getNombreFuente(), dtoFuente.getUrlFuente(), capitulo);
}
public List<DTOCapitulo> dtoLista(List<Capitulo> capitulos) {
return capitulos.stream().map(this::dto).collect(Collectors.toList());
}
......
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