1
resposta

[Dúvida] Quando devo usar um relacionamento de Entidades

Olá boa tarde! Me surgiu uma duvida em quando devo realizar um relacionamento de entidades.

Estou trabalhando em um microserviço de cadastro de usuário. Cada usuário possui um atributo do tipo Login, onde possui email e senha que será utilizado para autenticação JWT.

Seria viável realizar um relacionamento OneToOne ou posso apenas instanciar o login quando criar o usuário? Existe alguma boa pratica quanto a isso?

Entidade usuarioEntidade Login

1 resposta

Oi Gabriel!

Nesse seu exemplo em específico não faz sentido ter uma tabela separada para armazenar o login/senha, pois cada usuário terá apenas um único login/senha. Uma tabela separada seria mais válida no cenário de ter a necessidade de um registro estar vinculado com N outros registros.

Até do ponto de vista de performance é melhor manter o login/senha na mesma tabela.

Porém, no lado do código, não significa que você precise ter apenas uma única classe contendo todas as colunas representadas em atributos individuais. Você pode utilizar o recurso de Embedded Attributes da JPA, para separar atributos em classes distintas, mas o mapeamento vai considerar que eles estão na mesma tabela:

@AllArgsConstructor
@NoArgsConstructor
@Getter
@Entity
@Table(name = "usuarios")
public class Usuario {

    private Long id;
    private String nome;
    
    @Embedded
    private Login login;
    
    //outros atributos...

}
@Embeddable
@AllArgsConstructor
@NoArgsConstructor
@Getter
public class Login {

    private String email;
    private Strign senha;

}

Bons estudos!