Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
5
respuestas

[Duda] Auxilio

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

vikings DatosTemporada[numero=1, episodios=[DatosEpisodio[titulo=Rites of Passage, numeroEpisodio=1, imdbRating=7.6, fechaDeLanzamiento=2013-03-03], DatosEpisodio[titulo=Wrath of the Northmen, numeroEpisodio=2, imdbRating=7.8, fechaDeLanzamiento=2013-03-10], DatosEpisodio[titulo=Dispossessed, numeroEpisodio=3, imdbRating=7.9, fechaDeLanzamiento=2013-03-17], DatosEpisodio[titulo=Trial, numeroEpisodio=4, imdbRating=8.2, fechaDeLanzamiento=2013-03-24], DatosEpisodio[titulo=Raid, numeroEpisodio=5, imdbRating=8.2, fechaDeLanzamiento=2013-03-31], DatosEpisodio[titulo=Burial of the Dead, numeroEpisodio=6, imdbRating=N/A, fechaDeLanzamiento=2013-04-07], Hibernate: select s1_0.id,s1_0.fecha,s1_0.actores,s1_0.clasificacion,s1_0.director,s1_0.duracion,s1_0.escritor,s1_0.fecha_lanzamiento,s1_0.genero,s1_0.idioma,s1_0.imdbid,s1_0.imdb_rating,s1_0.imdb_votes,s1_0.pais,s1_0.poster_url,s1_0.premios,s1_0.tipo,s1_0.titulo,s1_0.total_de_temporadas,s1_0.trama,e1_0.serie_id,e1_0.id,e1_0.fecha_de_lanzamiento,e1_0.imdb_rating,e1_0.numero_episodio,e1_0.temporada,e1_0.titulo from series s1_0 left join episodios e1_0 on s1_0.id=e1_0.serie_id where s1_0.id=? Hibernate: insert into episodios (fecha_de_lanzamiento,imdb_rating,numero_episodio,serie_id,temporada,titulo) values (?,?,?,?,?,?) returning id Hibernate: insert into episodios (fecha_de_lanzamiento,imdb_rating,numero_episodio,serie_id,temporada,titulo) values (?,?,?,?,?,?) returning id Hibernate: insert into episodios (fecha_de_lanzamiento,imdb_rating,numero_episodio,serie_id,temporada,titulo) values (?,?,?,?,?,?) returning id

5 respuestas

Clase principal

private void buscarEpiosodioPorSerie(){ // DatosSerie datosSerie = getDatosSerie(); se cambia por lista guardadas mostrarSeriesBuscadas(); System.out.println("Escribe nombre de la serie para mostrar episodios"); var nombreSerie = teclado.nextLine();

    Optional<Serie> serie = series.stream()
            .filter(s -> s.getTitulo().toLowerCase().contains(nombreSerie.toLowerCase()))
            .findFirst();
    if (serie.isPresent()){
            var serieEncontrada = serie.get();


        List<DatosTemporada> temporadas = new ArrayList<>();

        for (int i = 1; i <=  serieEncontrada.getTotalDeTemporadas(); i++) {

            var json = consumoApi.obtenerDatos(URL_BASE + serieEncontrada.getTitulo().replace(" ", "+") + "&Season=" + i + API_KEY);

            DatosTemporada datosTemporada = conversor.obtenerDatos(json, DatosTemporada.class );
            // guarda la lista de cada una
            temporadas.add(datosTemporada);
        }
        temporadas.forEach(System.out::println);
        List<Episodio> episodios = temporadas.stream()
                .flatMap(d -> d.episodios().stream()
                        .map(e -> new Episodio(d.numero(),e)))
                .collect(Collectors.toList());
        serieEncontrada.setEpisodios(episodios);
        repositorio.save(serieEncontrada);
    }
}

@Entity @Table(name = "episodios") //parte de la entidad @Table(name = "series")

public class Episodio {

//parte de la entidad
@Id //crear más id 1 o 2 3456
@GeneratedValue(strategy = GenerationType.IDENTITY)//auto incrementacion de id
private Long Id; //se crea para mapera en sql identficador de la tabla

//mapear
private Integer temporada;
private String titulo;
private Integer numeroEpisodio;

private double imdbRating;

private LocalDate fechaDeLanzamiento;
//coneccion con serie termina
@ManyToOne
private Serie serie;
// llamar a serie que es el pa
//crear constructor manual obligado
public Episodio(Integer numero, DatosEpisodio e){}
public Episodio(){

}

//se reconosca como tabla para sql @Entity @Table(name = "series")//para crear más series

public class Serie {

@Id //crear más id 1 o 2 3456
@GeneratedValue(strategy = GenerationType.IDENTITY)//auto incrementacion de id
private Long Id; //se crea para mapera en sql identficador de la tabla

@Column(unique = true)

private String titulo;
private String Fecha;
private String clasificacion;
private String fechaLanzamiento;
private String duracion;
@Enumerated(EnumType.STRING)//indica que es enum
private Categoria genero;
private String director;
private String escritor;
private String actores;
private String trama;
private String idioma;
private String pais;
private String premios;
private String posterUrl;
private double imdbRating;
private String imdbVotes;
private String imdbID;
private String tipo;
private Integer totalDeTemporadas;
//se indica que no se va a usar por el momento
//@Transient se cambia por
@OneToMany(mappedBy = "serie", cascade = CascadeType.ALL )//un conector de serie mapeo a episodio  cascade = CascadeType.ALL
private List<Episodio> episodios; //por el momento

public Serie(){

}

Solucionado volví a repetir las clases bien Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Hola Diego, espero que estés bien

Creo que aún no lo entiendo completamente.

¿Cual es el error o errores actuales en su proyecto?

Saludos