Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haz como yo hice

import jakarta.persistence.*;
import java.util.ArrayList;
import java.util.List;

@Entity
@Table(name = "series")
public class Serie {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(unique = true, nullable = false)
private String titulo;

private Integer totalTemporadas;
private Double evaluacion;
private String genero;
private String actores;
private String poster;

@Column(length = 2000)
private String sinopsis;

@OneToMany(mappedBy = "serie", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
private List<Episodio> episodios = new ArrayList<>();

public Serie() {
}

public Serie(DatosSerie datos) {
    this.titulo = datos.titulo();
    this.totalTemporadas = datos.totalTemporadas();
    this.genero = datos.genero();
    this.actores = datos.actores();
    this.poster = datos.poster();
    this.sinopsis = datos.sinopsis();

    try {
        this.evaluacion = Double.valueOf(datos.evaluacion());
    } catch (Exception e) {
        this.evaluacion = 0.0;
    }
}

public void setEpisodios(List<Episodio> episodios) {
    episodios.forEach(e -> e.setSerie(this));
    this.episodios = episodios;
}

public void agregarEpisodio(Episodio episodio) {
    episodio.setSerie(this);
    this.episodios.add(episodio);
}

public Long getId() {
    return id;
}

public String getTitulo() {
    return titulo;
}

public Integer getTotalTemporadas() {
    return totalTemporadas;
}

public Double getEvaluacion() {
    return evaluacion;
}

public String getGenero() {
    return genero;
}

public String getActores() {
    return actores;
}

public String getPoster() {
    return poster;
}

public String getSinopsis() {
    return sinopsis;
}

public List<Episodio> getEpisodios() {
    return episodios;
}

@Override
public String toString() {
    return "Serie{" +
            "id=" + id +
            ", titulo='" + titulo + '\'' +
            ", totalTemporadas=" + totalTemporadas +
            ", evaluacion=" + evaluacion +
            ", genero='" + genero + '\'' +
            '}';
}

}

import jakarta.persistence.*;
import java.time.LocalDate;

@Entity
@Table(name = "episodios")
public class Episodio {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

private Integer temporada;
private String titulo;
private Integer numeroEpisodio;
private Double evaluacion;
private LocalDate fechaLanzamiento;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "serie_id")
private Serie serie;

public Episodio() {
}

public Episodio(Integer numeroTemporada, DatosEpisodio datosEpisodio) {
    this.temporada = numeroTemporada;
    this.titulo = datosEpisodio.titulo();
    this.numeroEpisodio = datosEpisodio.numero();

    try {
        this.evaluacion = Double.valueOf(datosEpisodio.evaluacion());
    } catch (Exception e) {
        this.evaluacion = 0.0;
    }

    try {
        this.fechaLanzamiento = LocalDate.parse(datosEpisodio.fechaLanzamiento());
    } catch (Exception e) {
        this.fechaLanzamiento = null;
    }
}

public Long getId() {
    return id;
}

public Integer getTemporada() {
    return temporada;
}

public String getTitulo() {
    return titulo;
}

public Integer getNumeroEpisodio() {
    return numeroEpisodio;
}

public Double getEvaluacion() {
    return evaluacion;
}

public LocalDate getFechaLanzamiento() {
    return fechaLanzamiento;
}

public Serie getSerie() {
    return serie;
}

public void setSerie(Serie serie) {
    this.serie = serie;
}

@Override
public String toString() {
    return "Episodio{" +
            "temporada=" + temporada +
            ", titulo='" + titulo + '\'' +
            ", numeroEpisodio=" + numeroEpisodio +
            ", evaluacion=" + evaluacion +
            ", fechaLanzamiento=" + fechaLanzamiento +
            '}';
}

}

var json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ", "+") + API_KEY);
DatosSerie datosSerie = conversor.obtenerDatos(json, DatosSerie.class);

Serie serie = new Serie(datosSerie);

List temporadas = new ArrayList<>();

for (int i = 1; i <= datosSerie.totalTemporadas(); i++) {
json = consumoApi.obtenerDatos(URL_BASE + nombreSerie.replace(" ", "+") + "&season=" + i + API_KEY);
DatosTemporada datosTemporada = conversor

1 respuesta

Hola David,

Gracias por compartir tu código con la comunidad. Es muy valioso ver cómo aplicas en la práctica los conceptos del curso.

Te recomiendo que puedas interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tu código, proyectos o repositorios, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente por tu aporte!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!