Por que o mappedBy só foi usado na classe Serie e não na classe Episodios ?
Por que o mappedBy só foi usado na classe Serie e não na classe Episodios ?
Olá, Victor. Tudo bem?
A razão pela qual o mappedBy é utilizado apenas na classe Serie e não na classe Episodio está relacionada à forma como o relacionamento bidirecional entre as duas classes é mapeado em JPA.
No caso de um relacionamento @OneToMany e @ManyToOne, como é o caso entre Serie e Episodio, o mappedBy é utilizado na classe que possui a coleção (no caso, Serie) para indicar que o relacionamento é controlado pelo lado "muitos" (Episodio). Isso significa que a classe Serie não é responsável por manter a chave estrangeira no banco de dados; essa responsabilidade é da classe Episodio.
Aqui está um exemplo prático:
Em Serie.java, você tem:
@OneToMany(mappedBy = "serie")
private List<Episodio> episodios = new ArrayList<>();
O mappedBy = "serie" indica que o atributo serie em Episodio é o responsável pelo relacionamento.
Em Episodio.java, você tem:
@ManyToOne
private Serie serie;
Aqui, Episodio possui a referência à Serie, e é onde a chave estrangeira é realmente armazenada no banco de dados.
Portanto, o mappedBy é usado para especificar o lado não proprietário do relacionamento, que é a coleção na classe Serie, enquanto Episodio é o lado proprietário que realmente mantém a referência à chave estrangeira.