Como Verificar se um dado ja foi inserido e nao deixar cadastrar

10 respostas
W

tenho os seguintes campos
Matricula:
Nome:
matricula é unico como faço pra tipo validar o campo e nao deixar inserir dados repetidos

estou usando PrimeFaces e JSF2 com hibernate

10 Respostas

F

cria como chave primaria na tabela

W

só que ele tem um ID pra controle e a matricula e do funcionario por fora, e tbm tenho outros campos que nao podem ser add se ja existir ai nao dap ra colocar tudo como pk

M

Id serve como um identificador para cada registro que você terá nas suas tabelas. Ja a pk é um dado unico para os dados da tabela e pode servir tb como id. Nao é preciso registrar tudo como Pk
Uma forma grosseira de resolver é fazer uma pesquisa com um dado que seja único para o registro (pk), Por exemplo, CPF.
Caso nao te retorne nada, você salva os dados.

W

entao como seria feito essa busca e como ficaria o formulario
do campo…

<h:outputLabel for="matricula" value="Matrícula: " /> <p:inputText id="matricula" size="10" value="#{professorBean.professor.matricula}"/>

H

Faça uma consulta antes de inserir. [=

L

Cria uma uniq constraint para a mátricula.

W

meu lance é,
exemplo

cadastro de LOGIN
pra ele checar se ja tem um cadastro com aquele nome… será que alguem poderia me ajudar ?

A

Já que está usando JPA, no @Column da matricula, coloca unique=true

W

cara deu certo, só tem um problema, ele informa pra mim que foi inserido com sucesso, como faço pra ele tratar a mensagem, e dizer que o campo X ja ta cadastrado que e pro usuario escolher outro

A

Sei que talvez não seja a melhor forma, mas eu faço assim:

public void gravar() {
        FacesContext context = FacesContext.getCurrentInstance();

        try {
            pessoaDAO.gravar(pessoa);
        } catch (Exception e) {
            context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_FATAL, "", "O login informado já existe!"));
        }
}
Criado 1 de setembro de 2012
Ultima resposta 7 de out. de 2012
Respostas 10
Participantes 6