1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Realizar pesquisa no banco pra verificar se existe antes de concluir a alteração.

Bom dia pessoal! Tenho uma duvida meio que de programação e logica... Tenho um Bean usuario, que tem os atribultos: id, login, nome, cpf ect... //get //set

public String alterar() {

        if (!usuario.isPasswordEquals()) {
            facesMessages.addFromResourceBundle(Severity.ERROR,
                    "geral.erroSenhaNaoConfere");
            return null;
        }
        if (validaCampoSenha(usuario.getSenha())) {
            try {
                usuarioNegocio.alterar(usuario);
                facesMessages.addFromResourceBundle(Severity.INFO,
                        "geral.cadastroRealizado");
            } catch (NegocioException e) {
                facesMessages
                        .addFromResourceBundle(e.getSeverity(), e.getKey());
                return null;
            }
            limpar();
            return "usuarioManter";
        }
        return null;

    }

O método acima 'UsuarioAcao' que valida se as senha digitada para alterar o cadastro são iguais, se a quantidade de caracter é < 6 e depois chama o usuarioNegocio.alterar(usuario);

Em usuarioNegocio.alterar(usuario); a regra de negocio exige que antes de salvar a operação de Alterar eu verifique se o usuario fez alguma alteração no cadastro, se sim exemplo: Altero o cpf e o login; verificar se o login e cpf já existe no banco antes de realizar a alteração.

Para fazer a pesquisa no banco uso o Criteria, pois uso hibernate, segue abaixo:

public Usuario consultarPorCPF(Usuario usuario) {
if (Validador.isObjetoValido(usuario)) {
            Session session = (Session) entityManager.getDelegate();
            Criteria criteria = session.createCriteria(Usuario.class);
            if (Validador.isStringValida(usuario.getCpf())) {
                criteria.add(Restrictions.eq("cpf", usuario.getCpf()));
            }
            return (Usuario) criteria.uniqueResult();
        }
        return null;
    }

só que ai travo ai, alguem tem alguma idéia de fazer diferente? ou se possivel ajuda a termina, verifica se o criteria tá correto, to perdido :x ...

Uso, jsf, hibernate e jboss.

  • Já pensou em usar um count? Se ele retornar 0, o cpf ainda não está cadastrado, caso contrário...

    drsmachado   23 de ago de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java jsf hibernate exception ou faça a sua própria pergunta.