Verificar se já existe login salvo de um usuario no banco de dados
8 respostasResolvido
programaçãojsfjavahibernate
C
Cicero_regis
Estou desenvolvendo uma aplicação simples com cadastro de usuário, onde na minha entidade Usuario Mapeei meu atributo login como @NaturalID.Porém na validação do formulário na hora de salvar, e retornado um erro de chave duplicada.
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry ‘cicinho1995’ for key ‘UK_fl3uvb053wjkjly059t4j7xjp’
Gostaria de tratar essa validaçao com uma mensagem do tipo growl ou message.
Alguém por gentileza poderia me ajudar nesse simples problema,que pra mim ta se tornando muito dificil achar uma solução.
try{loginDAO.logar(usuario);}catch(Exceptionex){//Aqui você pode tratar a exceção específica, não necessariamente com Exception//Registra no log//Cria a mensagem para exibir no growl}
C
Cicero_regis
olá Darlan. obrigado o responder.
tenho sim ,mais não seria exatamente isso , quero um comando que eu possa usar no meu método salvar,ou seja, antes de salvar o usuário verificar se já existe um login cadastrado …
@FacesValidator("cpfValidator")publicclassCpfValidatorimplementsValidator{@InjectprivateUsuarioServiceusuarioService;@Overridepublicvoidvalidate(FacesContextarg0,UIComponentarg1,Objectvalue)throwsValidatorException{Stringcpf=(String)value;...if(usuarioService.findByCpf(cpf)!=null)//Se encontrar{thrownewValidatorException(newFacesMessage(FacesMessage.SEVERITY_ERROR,"O CPF informado ja está cadastrado!",null));}}}
C
Cicero_regis
É por ai mesmo Mike.
Vou testar aqui pra ver se funciona…
C
Cicero_regis
Muito obrigado Mike, funcionou!!!
M
Mike
Que bom que deu certo
C
Cicero_regis
outra forma que encontrei que também funciona:
session=HibernateUtil.getSessionFactory().openSession();Stringhql_1="from Usuario c where c.login = :login";
porém isso sendo feito dentro do bean.
está correto?
M
Mike
Você pode validar pelo bean também, mas prefiro usar validator devido ao ciclo de vida e também pq é muito pratico