Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Login sem unique

Olá, bom dia. O login não deveria ter o 'unique' na migration para gerar valores diferentes para cada usuário? Podemos fazer isso na validation no DTO? Não faz nenhuma diferença?

1 resposta
solução!

Olá, Arthur

A sua pergunta é muito pertinente. Na migration que cria a tabela de usuários, é importante sim adicionar a restrição de unique para o campo de login, para garantir que cada usuário tenha um login único. Isso evita que haja duplicidade de logins no sistema.

A validação no DTO também é importante para garantir que o login seja único antes de salvar no banco de dados. No entanto, a validação no DTO ocorre apenas no momento da requisição, antes de salvar os dados no banco. Se a validação no DTO não for feita corretamente, pode ocorrer uma exceção no momento de salvar os dados no banco.

Portanto, é recomendado adicionar a restrição de unique na migration e também fazer a validação no DTO para garantir a unicidade do login.

Aqui está um exemplo de como adicionar a restrição de unique na migration:

create table usuarios(
    id bigint not null auto_increment,
    login varchar(100) not null unique,
    senha varchar(255) not null,
    primary key(id)
);

E aqui está um exemplo de como fazer a validação no DTO utilizando o framework Spring Boot:

public class UsuarioDTO {
    @NotBlank(message = "O login é obrigatório")
    @Size(max = 100, message = "O login deve ter no máximo 100 caracteres")
    private String login;

    @NotBlank(message = "A senha é obrigatória")
    @Size(max = 255, message = "A senha deve ter no máximo 255 caracteres")
    private String senha;

    // getters e setters
}

Espero ter ajudado! Se tiver mais alguma dúvida, é só me dizer. Bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software