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

maffra

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}"/>

Hebert_Coelho

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 ?

andii.brunetta

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

andii.brunetta

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