@Entity
public class Serie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String titulo;
// Outros atributos...
@OneToMany(mappedBy = "serie", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Episodio> episodios = new ArrayList<>();
// Getters e Setters
public void adicionarEpisodio(Episodio episodio) {
episodio.setSerie(this);
this.episodios.add(episodio);
}
// toString, equals, hashCode...
}
@Entity
public class Episodio {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Integer numero;
private String titulo;
private Integer temporada;
// Relacionamento com Serie
@ManyToOne
@JoinColumn(name = "serie_id")
private Serie serie;
// Getters e Setters
public void setSerie(Serie serie) {
this.serie = serie;
}
public Serie getSerie() {
return serie;
}
// equals, hashCode, toString...
}
Serie serie = new Serie();
serie.setTitulo("Breaking Bad");
Episodio ep1 = new Episodio();
ep1.setTitulo("Pilot");
ep1.setNumero(1);
ep1.setTemporada(1);
serie.adicionarEpisodio(ep1);
entityManager.persist(serie); // Cascata salva também o episódio