Quando eu preencho os dados de cadastro de região, e envio para a controladora, que acessa a dao, e acessa a classe, me dá erro de conversão, acredito eu porque o dado q está sendo enviado do combobox é um Integer, e no setDepartamento da classe Região está assim:
Ou seja, o atributo aí é do tipo Departamento, e não recebe um Integer.
Já tive o mesmo problema com Datas, mas era só converter a String recebida em uma Data.
Mas como eu faria aqui, pra converter o Integer para Departamento?
Fiz um teste trocando na classe o tipo Departamento para Integer, ficando assim:
publicclassRegiaoimplementsSerializable{@IdprivateIntegerregiao;privatebooleanstatus;privateIntegerdepartamento;//mudado para Integer....publicvoidsetDepartamento(Integerdepartamento){this.departamento=departamento;}
E cadastrou beleza!!! O problema está na questão de ser um Integer e ser um Departamento.
Espero ter sido claro no problema… e poder contar com a ajuda de alguém.
Abaixo segue o erro q dá no browser na hora de cadastro, abraço a todos.
com o indice recebido, você procura o departamento correspondente.
você deve em algum lugar do projeto possuir um método que retorne o departamento de acordo com o índice selecionado na página jsp. O método setDepartamento ficaria algo assim:
packagedao;importbanco.Banco;importentidades.Regiao;importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.Query;publicclassDaoRegiao{privateEntityManagerem;privateQueryq;publicDaoRegiao(){em=Banco.getInstancia().getEm();q=em.createQuery("FROM Regiao obj order by obj.regiao");}publicRegiaoget(Integerid){em.clear();em.getTransaction().begin();Regiaoobj;obj=em.find(Regiao.class,id);em.getTransaction().commit();returnobj;}publicList<Regiao>select(){em.clear();em.getTransaction().begin();Listlista=q.getResultList();em.getTransaction().commit();returnlista;}publicvoidsaveOrUpdate(Regiaoobj){em.clear();em.getTransaction().begin();em.merge(obj);em.getTransaction().commit();}publicvoiddelete(Regiaoobj){em.clear();em.getTransaction().begin();obj=em.find(Regiao.class,obj.getId());if(obj!=null){em.remove(obj);}em.getTransaction().commit();}}
DaoDepartamento
packagedao;importbanco.Banco;importentidades.Departamento;importjava.util.List;importjavax.persistence.EntityManager;importjavax.persistence.Query;publicclassDaoDepartamento{privateEntityManagerem;privateQueryq;publicDaoDepartamento(){em=Banco.getInstancia().getEm();q=em.createQuery("FROM Departamento obj order by obj.id");}publicDepartamentoget(Integerid){em.clear();em.getTransaction().begin();Departamentoobj;obj=em.find(Departamento.class,id);em.getTransaction().commit();returnobj;}publicList<Departamento>select(){em.clear();em.getTransaction().begin();Listlista=q.getResultList();em.getTransaction().commit();returnlista;}publicvoidsaveOrUpdate(Departamentoobj){em.clear();em.getTransaction().begin();em.merge(obj);em.getTransaction().commit();}publicvoiddelete(Departamentoobj){em.clear();em.getTransaction().begin();obj=em.find(Departamento.class,obj.getId());if(obj!=null){em.remove(obj);}em.getTransaction().commit();}}