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!