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

[Duda] No suben los episodios a base de datos

Como se ve en el video en el minuto que Genesys añade:

@OneToMany(mappedBy = "serie", cascade = CascadeType.ALL)

Y luego arranca el codigo, se ve como al seleccionar el item 2 (Buscar episodios), y luego escoge "Vikings" a ella le sale "INSERT" en los episodios. En mi caso sigue apareciendo "SELECT":

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Adjunto el codigo de las clases que se modificaron:

Clase Episodio:

package com.aluracursos.screenmatch.model;
import jakarta.persistence.*;
import java.time.LocalDate;
import java.time.format.DateTimeParseException;

@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 fechaDeLanzamiento;

    @ManyToOne
    private Serie serie;

    public Episodio(){}

    public Episodio(Integer numero, DatosEpisodio d) {
        this.temporada = numero;
        this.titulo = d.titulo();
        this.numeroEpisodio = d.numeroEpisodio();
        try{
            this.evaluacion = Double.valueOf(d.evaluacion());
        }catch (NumberFormatException e){
            this.evaluacion = 0.0;
        }
        try{
            this.fechaDeLanzamiento = LocalDate.parse(d.fechaDeLanzamiento());
        } catch (DateTimeParseException e){
            this.fechaDeLanzamiento = null;
        }

    }

   Getters y setters omitidos (Por limite de caracteres)

Clase Serie:

package com.aluracursos.screenmatch.model;

import jakarta.persistence.*;
import jakarta.persistence.Id;
import java.util.List;
import java.util.OptionalDouble;

@Entity
@Table(name = "series")

public class Serie {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long Id;
    @Column(unique = true)
    private String titulo;
    private Integer totalTemporadas;
    private Double evaluacion;
    private String poster;
    @Enumerated(EnumType.STRING)
    private Categoria genero;
    private String actores;
    private String sinopsis;

    @OneToMany(mappedBy = "serie", cascade = CascadeType.ALL)
    private List<Episodio> episodios;

    public Serie(){}

    public Serie(DatosSerie datosSerie){
        this.titulo = datosSerie.titulo();
        this.totalTemporadas = datosSerie.totalTemporadas();
        this.evaluacion = OptionalDouble.of(Double.valueOf(datosSerie.evaluacion())).orElse(0) ;
        this.poster = datosSerie.poster();
        this.genero = Categoria.fromString(datosSerie.genero().split(",")[0].trim());
        this.actores = datosSerie.actores();
        this.sinopsis = datosSerie.sinopsis();
    }

    @Override
    public String toString() {
        return  "genero=" + genero +
                " titulo='" + titulo + '\'' +
                ", totalTemporadas=" + totalTemporadas +
                ", evaluacion=" + evaluacion +
                ", poster='" + poster + '\'' +

                ", actores='" + actores + '\'' +
                ", sinopsis='" + sinopsis + '\'';
    }
    
    Getters y setters omitidos (Por limite de caracteres)

Archivo Aplication.properties

spring.datasource.url=jdbc:postgresql://${DB_HOST}/${DB_NAME}
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driver-class-name=org.postgresql.Driver
hibernate.dialect=org.hibernate.dialect.HSQLDialect

spring.jpa.hibernate.ddl-auto=update

spring.jpa.show-sql=true
spring.jpa.format-sql=true
1 respuesta

Hola Diego, ¡espero que estés bien!

Dudas:

  1. Al realizar las modificaciones, ¿detuvo la ejecución del proyecto y ejecutó de nuevo?
  2. Por favor, ¿podría mostrar su código de la clase Principal?

¡Saludos!