Relacional

OneToOne

Explorando a relação entre classes e entidades

Explicação

No relacionamento @OneToOne (Um-para-Um) uma instância de uma entidade está associada a uma instância de outra entidade.

@OneToOne

Exemplo

Vamos imaginar que sua empresa tem como funcionalidade disponibilizar um limite de crédito para cada um de seus clientes, considerando que após a aprovação do cadastro de cliente, o mesmo já tenha uma configuração de limite de crédito inicialmente de R$ 100,00. Com base nesta regra de negócio, através da anotação @OneToOne é possível relacionar a entidade Cliente a mais nova entidade LimiteCredito conforme código abaixo:

import jakarta.persistence.*;

@Entity
public class Cliente {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String nome;
    @OneToOne(cascade = CascadeType.ALL)
    private LimiteCredito limiteCredito;
    
    // Lombok ou Getters e Setters

}
Como acontece o relacionamento entre as tabelas das entidades em suas respectivas tabelas? Simples, o JPA irá esperar que a tabela pertecente a entidade Cliente tenha uma coluna que represente o atributo id da entidade LimiteCredito como coluna no banco de dados. E automaticamente, na persitência da entidade cliente, uma tentativa de inclusão dos dados de limite de crédito também será realizada.