Meu objetivo é criar um sistema de votação
package com.atividade.Beans;
import java.io.Serializable;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import com.atividade.Dao.CandidatoDao;
import com.atividade.Dao.EleitorDao;
import com.atividade.Dao.VotoDao;
import com.atividade.Model.Candidato;
import com.atividade.Model.Eleitor;
import com.atividade.Model.Pessoa;
import com.atividade.Model.Voto;
import com.atividade.Tx.Transational;
@Named(“votoBean”)
@SessionScoped
public class VotoBean implements Serializable{private static final long serialVersionUID = 1L;
private Voto voto = new Voto();
private Eleitor eleitor = new Eleitor();
private Candidato candidato = new Candidato();
private Integer votoid;
private Integer candidatoid;
private List candidatos;
@Inject
private FacesContext context;@Inject
private VotoDao votoDao;@Inject
private EleitorDao eleitorDao;@Inject
private CandidatoDao candidatoDao;public Voto getVoto() {
return voto;
}public void setVoto(Voto voto) {
this.voto = voto;
}@Transational
public void gravar(){this.voto.setCandidato(this.candidato); this.votoDao.begin(); this.voto.setCandidatoid(this.candidato); this.votoDao.create(this.voto); this.votoDao.commit(); this.votoDao.close();
}
@Transational
public void remover(){
System.out.println(this.votoid);
this.votoDao.delete(this.getVoto());
}public Integer getVotoid() {
return votoid;
}public void setVotoid(Integer votoid) {
this.votoid = votoid;
}
public Eleitor getEleitor() {
return eleitor;
}
public void setEleitor(Eleitor eleitor) {
this.eleitor = eleitor;
}
public FacesContext getContext() {
return context;
}
public void setContext(FacesContext context) {
this.context = context;
}
public Candidato getCandidato() {
return candidato;
}
public void setCandidato(Candidato candidato) {
this.candidato = candidato;
}
public List getCandidatos() {
return candidatos;
}
public void setCandidatos(List candidatos) {
this.candidatos = candidatos;
}
public Integer getCandidatoid() {
return candidatoid;
}
public void setCandidatoid(Integer candidatoid) {
this.candidatoid = candidatoid;
}
public EleitorDao getEleitorDao() {
return eleitorDao;
}
public void setEleitorDao(EleitorDao eleitorDao) {
this.eleitorDao = eleitorDao;
}
public CandidatoDao getCandidatoDao() {
return candidatoDao;
}
public void setCandidatoDao(CandidatoDao candidatoDao) {
this.candidatoDao = candidatoDao;
}
}
Parte do votar.xhtml
> <body> > <h:form id="formVotar"> > <h:selectOneMenu value="#{votoBean.voto.candidato}" id="candidato" converter="votoconverter"> > <f:selectItems value="#{candidatoBean.candidatos}" var="candidato" itemLabel="#{candidato.candidatoId}" itemValue="#{votoBean.candidato.candidatoId}" /> > </h:selectOneMenu> > <br></br> > <h:commandButton value="confirma" action="#{votoBean.gravar()}" label="submit" style="height:30px"/> > </h:form> > </body>
Porem ao tentar inserir o id da tabela candidato na tabela voto, ele apenas tenta inserir um novo candidato e dá erro.
Alguem sabe a maneira certa de se inserir usando SelectOneMenu