1
resposta

[Dúvida] Episodios não está salvando no banco de dados PostgreSQL

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);
1 resposta

Olá, Ruan.

Tudo bem?

Você vai precisar verificar alguns pontos que podem estar causando esse problema.

  • Verifique o mapeamento das entidades: Certifique-se de que as entidades Serie e Episodio estão corretamente mapeadas com as anotações do JPA. Por exemplo:
@Entity
public class Serie {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

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

    // getters e setters
}

@Entity
public class Episodio {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private int numero;

    @ManyToOne
    @JoinColumn(name = "serie_id")
    private Serie serie;

    // getters e setters
}
  • Transações: Certifique-se de que a operação de salvamento está sendo realizada dentro de uma transação. O Spring Data JPA geralmente gerencia isso automaticamente, mas é bom verificar se você não está em um contexto onde a transação não está ativa.

  • Debug e Logs: Adicione logs ou debug para verificar se os dados estão sendo corretamente populados antes de chamar o método save. Por exemplo:

episodios.forEach(System.out::println);
serieEncontrada.setEpisodios(episodios);
episodios.forEach(e -> e.setSerie(serieEncontrada));
System.out.println("Episódios antes de salvar: " + serieEncontrada.getEpisodios());
repositorio.save(serieEncontrada);

Espero que essas dicas ajudem a resolver o problema. Qualquer coisa manda mais detalhes para uma resposta mais assertiva. Bons estudos!