ManyToOne
Explicação
A anotação @ManyToOne
do JPA (Java Persistence API) é utilizada para mapear um relacionamento de muitos para um entre duas entidades. Esse tipo de relacionamento significa que várias instâncias de uma entidade (muitos) podem estar associadas a uma única instância de outra entidade (um).
@ManyToOne
Exemplo
Vamos imaginar que sua empresa ofereça um pacote de serviços com desconto para todos os clientes que atuam nas profissões de: Enfermeiro(a), Dentista e Veterinário(a). Para que haja uma melhor integridade quanto aos dados cadastrais de seus clientes, é melhor existir as tabelas profissão e cliente respectivamente.
Logo, é importante ser possível selecinar todos os clientes associados à determinadas profissões em nosso sistema tanto via banco de dados quanto com JPA.
import jakarta.persistence.Id;
import jakarta.persistence.Entity;
@Entity
public class Profissao {
@Id
private Integer id;
private String nome;
}
@JoinColumn
A @JoinColumn
define como o relacionamento entre as tabelas será feito, ou seja, qual será a coluna responsável por armazenar a referência a profissão, exemplo: Se em seu banco de dados a coluna profisssao
existente na tabela cliente
recebe o nome de profissao_id
, é necessário utilizar a anotação JoinColumn.
@JoinColumn
@Entity
public class Cliente {
//...
@ManyToOne
@JoinColumn(name = "profissao_id")
private Profissao profissao;
}