When developing a simple application where the dependent is bound to its responsible who is a driver, when I click to create the bind and write dependent nothing happens, only the following message is posted without interrupting the application.
out 28, 2017 3:19:15 PM com.sun.faces.renderkit.RenderKitUtils renderUnhandledMessages
INFO: WARNING: FacesMessage(s) have been enqueued, but may not have been displayed.
sourceId=j_idt4:motorista[severity=(ERROR 2), summary=(j_idt4:motorista: 'Pessoa [nome=ROBSON GOMES JUNIOR, cpf=, rg=, nomeMae=, nomePai=, dataNascimento=, rua=, numeroCasa=, bairro=, cidade=, estado=, cep=]' must be a number consisting of one or more digits.), detail=(j_idt4:motorista: 'Pessoa [nome=ROBSON GOMES JUNIOR, cpf=, rg=, nomeMae=, nomePai=, dataNascimento=, rua=, numeroCasa=, bairro=, cidade=, estado=, cep=]' must be a number between -2147483648 and 2147483647 Example: 9346)]
Bean
package modelo;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import modeloDAO.DAO;
@ManagedBean
@ViewScoped
public class DependenteBean implements Serializable {
private static final long serialVersionUID = 1L;
private Dependente dependente = new Dependente();
private Integer motoristaId;
public void setMotoristaId(Integer motoristaId) {
this.motoristaId = motoristaId;
}
public Integer getMotoristaId() {
return motoristaId;
}
public Dependente getDependente() {
return dependente;
}
public List<Motorista> getMotoristas() {
return new DAO<Motorista>(Motorista.class).listaTodos();
}
public void gravarMotorista() {
Motorista motorista = new DAO<Motorista>(Motorista.class).buscaPorId(this.motoristaId);
this.dependente.adicionaMotorista(motorista);
}
public void gravar() {
gravarMotorista();
System.out.println("Gravando Dependente: " + this.dependente.toString());
new DAO<Dependente>(Dependente.class).adiciona(this.dependente);
this.dependente = new Dependente();
}
}
XHTML
<h:body>
<h1>Novo Dependente</h1>
<h:form>
<fieldset>
<legend>Dados do Dependente</legend>
<h:panelGrid columns="2">
<h:outputLabel value="Nome: " for="nome" />
<h:inputText id="nome" value="#{dependenteBean.dependente.nome}" />
<h:outputLabel value="Data de Nascimento: " for="dataNascimento" />
<h:inputText id="dataNascimento" value="#{dependenteBean.dependente.dataNascimento}" />
<h:outputLabel value="CPF: " for="cpf" />
<h:inputText id="cpf" value="#{dependenteBean.dependente.cpf}" />
<h:outputLabel value="RG: " for="rg" />
<h:inputText id="rg" value="#{dependenteBean.dependente.rg}" />
<h:outputLabel value="Nome da Mãe: " for="nomeMae" />
<h:inputText id="nomeMae" value="#{dependenteBean.dependente.nomeMae}" />
<h:outputLabel value="Nome da Pai: " for="nomePai" />
<h:inputText id="nomePai" value="#{dependenteBean.dependente.nomePai}" />
<h:outputLabel value="Nome da Rua: " for="rua" />
<h:inputText id="rua" value="#{dependenteBean.dependente.rua}" />
<h:outputLabel value="Numero da Casa ou Apartamento: " for="numeroCasa" />
<h:inputText id="numeroCasa" value="#{dependenteBean.dependente.numeroCasa}" />
<h:outputLabel value="Bairro: " for="bairro" />
<h:inputText id="bairro" value="#{dependenteBean.dependente.bairro}" />
<h:outputLabel value="Cidade: " for="cidade" />
<h:inputText id="cidade" value="#{dependenteBean.dependente.cidade}" />
<h:outputLabel value="Estado: " for="estado" />
<h:inputText id="estado" value="#{dependenteBean.dependente.estado}" />
<h:outputLabel value="CEP: " for="cep" />
<h:inputText id="cep" value="#{dependenteBean.dependente.cep}" />
<h:commandButton value="Cadastrar" action="#{dependenteBean.gravar}" />
</h:panelGrid>
</fieldset>
<fieldset>
<legend>Dados do Motorista</legend>
<h:outputLabel value="Selecione Motorista" for="motorista" />
<h:selectOneMenu value="#{dependenteBean.motoristaId}" id="motorista">
<f:selectItems value="#{dependenteBean.motoristas}" var="motorista" itemLabel="#{motorista.nome}" itemValue="#{pessoa.motorista.id}" />
</h:selectOneMenu>
<!-- <h:message for="motorista" /> -->
<h:commandButton value="Gravar Motorista" action="#{dependenteBean.gravarMotorista}" />
</fieldset>
</h:form>
</h:body>
Dependent Class
package modelo;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name = "DEPENDENTE")
public class Dependente extends Pessoa {
@ManyToOne(fetch = FetchType.EAGER) // MUITOS DEPENDENTES PARA 1 MOTORISTA
private Motorista motorista;
public Dependente() {
super();
}
@Override
public String getNome() {
// TODO Auto-generated method stub
return super.getNome();
}
@Override
public void setNome(String nome) {
// TODO Auto-generated method stub
super.setNome(nome);
}
@Override
public String getCpf() {
// TODO Auto-generated method stub
return super.getCpf();
}
@Override
public void setCpf(String cpf) {
// TODO Auto-generated method stub
super.setCpf(cpf);
}
@Override
public String getRg() {
// TODO Auto-generated method stub
return super.getRg();
}
@Override
public void setRg(String rg) {
// TODO Auto-generated method stub
super.setRg(rg);
}
@Override
public String getNomeMae() {
// TODO Auto-generated method stub
return super.getNomeMae();
}
@Override
public void setNomeMae(String nomeMae) {
// TODO Auto-generated method stub
super.setNomeMae(nomeMae);
}
@Override
public String getNomePai() {
// TODO Auto-generated method stub
return super.getNomePai();
}
@Override
public void setNomePai(String nomePai) {
// TODO Auto-generated method stub
super.setNomePai(nomePai);
}
@Override
public String getDataNascimento() {
// TODO Auto-generated method stub
return super.getDataNascimento();
}
@Override
public void setDataNascimento(String dataNascimento) {
// TODO Auto-generated method stub
super.setDataNascimento(dataNascimento);
}
@Override
public String getRua() {
// TODO Auto-generated method stub
return super.getRua();
}
@Override
public void setRua(String rua) {
// TODO Auto-generated method stub
super.setRua(rua);
}
@Override
public String getNumeroCasa() {
// TODO Auto-generated method stub
return super.getNumeroCasa();
}
@Override
public void setNumeroCasa(String numeroCasa) {
// TODO Auto-generated method stub
super.setNumeroCasa(numeroCasa);
}
@Override
public String getBairro() {
// TODO Auto-generated method stub
return super.getBairro();
}
@Override
public void setBairro(String bairro) {
// TODO Auto-generated method stub
super.setBairro(bairro);
}
@Override
public String getCidade() {
// TODO Auto-generated method stub
return super.getCidade();
}
@Override
public void setCidade(String cidade) {
// TODO Auto-generated method stub
super.setCidade(cidade);
}
@Override
public String getEstado() {
// TODO Auto-generated method stub
return super.getEstado();
}
@Override
public void setEstado(String estado) {
// TODO Auto-generated method stub
super.setEstado(estado);
}
@Override
public String getCep() {
// TODO Auto-generated method stub
return super.getCep();
}
@Override
public void setCep(String cep) {
// TODO Auto-generated method stub
super.setCep(cep);
}
// ADICIONA MOTORISTA
public void adicionaMotorista(Motorista motorista) {
this.motorista = motorista;
}
public Motorista getMotorista() {
return motorista;
}
@Override
public String toString() {
return "Dependente [motorista=" + motorista + ", getNome()=" + getNome() + ", getCpf()=" + getCpf() + ", getRg()=" + getRg() + ", getNomeMae()=" + getNomeMae() + ", getNomePai()=" + getNomePai() + ", getDataNascimento()=" + getDataNascimento() + ", getRua()=" + getRua() + ", getNumeroCasa()=" + getNumeroCasa() + ", getBairro()=" + getBairro() + ", getCidade()=" + getCidade() + ", getEstado()=" + getEstado() + ", getCep()=" + getCep() + ", getMotorista()=" + getMotorista() + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((motorista == null) ? 0 : motorista.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Dependente other = (Dependente) obj;
if (motorista == null) {
if (other.motorista != null)
return false;
} else if (!motorista.equals(other.motorista))
return false;
return true;
}
}
Driver Class
package modelo;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "MOTORISTA")
public class Motorista extends Pessoa {
private String cnhMotorista;
private String validadeCnh;
@OneToMany(mappedBy = "motorista")
private List<Dependente> dependentes;
@ManyToOne
private Carro carro;
@OneToMany(mappedBy = "motorista")
private List<Viagem> viagens;
public Motorista() {
super();
}
public String getCnhMotorista() {
return cnhMotorista;
}
public void setCnhMotorista(String cnhMotorista) {
this.cnhMotorista = cnhMotorista;
}
public String getValidadeCnh() {
return validadeCnh;
}
public void setValidadeCnh(String validadeCnh) {
this.validadeCnh = validadeCnh;
}
@Override
public String getNome() {
// TODO Auto-generated method stub
return super.getNome();
}
@Override
public void setNome(String nome) {
// TODO Auto-generated method stub
super.setNome(nome);
}
@Override
public String getCpf() {
// TODO Auto-generated method stub
return super.getCpf();
}
@Override
public void setCpf(String cpf) {
// TODO Auto-generated method stub
super.setCpf(cpf);
}
@Override
public String getRg() {
// TODO Auto-generated method stub
return super.getRg();
}
@Override
public void setRg(String rg) {
// TODO Auto-generated method stub
super.setRg(rg);
}
@Override
public String getNomeMae() {
// TODO Auto-generated method stub
return super.getNomeMae();
}
@Override
public void setNomeMae(String nomeMae) {
// TODO Auto-generated method stub
super.setNomeMae(nomeMae);
}
@Override
public String getNomePai() {
// TODO Auto-generated method stub
return super.getNomePai();
}
@Override
public void setNomePai(String nomePai) {
// TODO Auto-generated method stub
super.setNomePai(nomePai);
}
@Override
public String getDataNascimento() {
// TODO Auto-generated method stub
return super.getDataNascimento();
}
@Override
public void setDataNascimento(String dataNascimento) {
// TODO Auto-generated method stub
super.setDataNascimento(dataNascimento);
}
@Override
public String getRua() {
// TODO Auto-generated method stub
return super.getRua();
}
@Override
public void setRua(String rua) {
// TODO Auto-generated method stub
super.setRua(rua);
}
@Override
public String getNumeroCasa() {
// TODO Auto-generated method stub
return super.getNumeroCasa();
}
@Override
public void setNumeroCasa(String numeroCasa) {
// TODO Auto-generated method stub
super.setNumeroCasa(numeroCasa);
}
@Override
public String getBairro() {
// TODO Auto-generated method stub
return super.getBairro();
}
@Override
public void setBairro(String bairro) {
// TODO Auto-generated method stub
super.setBairro(bairro);
}
@Override
public String getCidade() {
// TODO Auto-generated method stub
return super.getCidade();
}
@Override
public void setCidade(String cidade) {
// TODO Auto-generated method stub
super.setCidade(cidade);
}
@Override
public String getEstado() {
// TODO Auto-generated method stub
return super.getEstado();
}
@Override
public void setEstado(String estado) {
// TODO Auto-generated method stub
super.setEstado(estado);
}
@Override
public String getCep() {
// TODO Auto-generated method stub
return super.getCep();
}
@Override
public void setCep(String cep) {
// TODO Auto-generated method stub
super.setCep(cep);
}
public List<Dependente> getDependentes() {
return dependentes;
}
public void setDependentes(List<Dependente> dependentes) {
this.dependentes = dependentes;
}
public Carro getCarro() {
return carro;
}
public void setCarro(Carro carro) {
this.carro = carro;
}
@Override
public String toString() {
return "Motorista [getCnhMotorista()=" + getCnhMotorista() + ", getValidadeCnh()=" + getValidadeCnh() + ", getNome()=" + getNome() + ", getCpf()=" + getCpf() + ", getRg()=" + getRg() + ", getNomeMae()=" + getNomeMae() + ", getNomePai()=" + getNomePai() + ", getDataNascimento()=" + getDataNascimento() + ", getRua()=" + getRua() + ", getNumeroCasa()=" + getNumeroCasa() + ", getBairro()=" + getBairro() + ", getCidade()=" + getCidade() + ", getEstado()=" + getEstado() + ", getCep()=" + getCep() + ", getDependentes()=" + getDependentes() + ", getCarro()=" + getCarro() + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((carro == null) ? 0 : carro.hashCode());
result = prime * result + ((cnhMotorista == null) ? 0 : cnhMotorista.hashCode());
result = prime * result + ((dependentes == null) ? 0 : dependentes.hashCode());
result = prime * result + ((validadeCnh == null) ? 0 : validadeCnh.hashCode());
result = prime * result + ((viagens == null) ? 0 : viagens.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Motorista other = (Motorista) obj;
if (carro == null) {
if (other.carro != null)
return false;
} else if (!carro.equals(other.carro))
return false;
if (cnhMotorista == null) {
if (other.cnhMotorista != null)
return false;
} else if (!cnhMotorista.equals(other.cnhMotorista))
return false;
if (dependentes == null) {
if (other.dependentes != null)
return false;
} else if (!dependentes.equals(other.dependentes))
return false;
if (validadeCnh == null) {
if (other.validadeCnh != null)
return false;
} else if (!validadeCnh.equals(other.validadeCnh))
return false;
if (viagens == null) {
if (other.viagens != null)
return false;
} else if (!viagens.equals(other.viagens))
return false;
return true;
}
}
DAO
package modeloDAO;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaQuery;
public class DAO<T> {
private final Class<T> classe;
public DAO(Class<T> classe) {
this.classe = classe;
}
public void adiciona(T t) {
// consegue a entity manager
EntityManager em = new JPAUtil().getEntityManager();
// abre transacao
em.getTransaction().begin();
// persiste o objeto
em.persist(t);
// commita a transacao
em.getTransaction().commit();
// fecha a entity manager
em.close();
}
public void remove(T t) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.remove(em.merge(t));
em.getTransaction().commit();
em.close();
}
public void atualiza(T t) {
EntityManager em = new JPAUtil().getEntityManager();
em.getTransaction().begin();
em.merge(t);
em.getTransaction().commit();
em.close();
}
public List<T> listaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).getResultList();
em.close();
return lista;
}
public T buscaPorId(Integer id) {
EntityManager em = new JPAUtil().getEntityManager();
T instancia = em.find(classe, id);
em.close();
return instancia;
}
public int contaTodos() {
EntityManager em = new JPAUtil().getEntityManager();
long result = (Long) em.createQuery("select count(n) from livro n").getSingleResult();
em.close();
return (int) result;
}
public List<T> listaTodosPaginada(int firstResult, int maxResults) {
EntityManager em = new JPAUtil().getEntityManager();
CriteriaQuery<T> query = em.getCriteriaBuilder().createQuery(classe);
query.select(query.from(classe));
List<T> lista = em.createQuery(query).setFirstResult(firstResult).setMaxResults(maxResults).getResultList();
em.close();
return lista;
}
}