Nesse exemplo, temos uma entidade "Post" que possui um relacionamento um-para-muitos com a entidade "Comentario". A anotação @OneToMany no campo "comentarios" indica esse relacionamento, enquanto a anotação @ManyToOne no campo "post" estabelece a relação inversa. A anotação @JoinColumn especifica a coluna "post_id" que será usada para fazer a junção entre as tabelas.
@Entity
public class Publicacao {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String titulo;
@OneToMany(mappedBy = "publicacao", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Comentario> comentarios;
// getters e setters
}
@Entity
public class Comentario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column
private String texto;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "publicacao_id", nullable = false)
private Publicacao publicacao;
// getters e setters
}