Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by BR ( 13 years ago )
package br.com.caelum.notasfiscais.validator;

import java.io.Serializable;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.jboss.seam.faces.validation.InputField;

@FacesValidator("nomeExistenteValidator")
public class NomeExistenteValidator implements Validator, Serializable {

 private static final long serialVersionUID = 1L;
 
 @Inject
 @InputField
 private String nome;
 
 @Inject
 private EntityManager em;
 

 @Override
 public void validate(FacesContext fc, UIComponent component, Object value)
   throws ValidatorException {

   Query q = em.createQuery("select count(p) from Produto p where p.nome like :nome");
   q.setParameter("nome", nome);
   Long count = (Long) q.getSingleResult();
   
   if (count != 0) {
    throw new ValidatorException(new FacesMessage("Nome do produto ja existe."));
   }
   
  } 

}

 

Revise this Paste

Your Name: Code Language: