Aline Lozano Postado Maio 16, 2011 Denunciar Share Postado Maio 16, 2011 Boa tarde, estou com problema na alteração de arquivos.Tenho meu diagrama de classe da seguinte forma: (não consegui colocar a imagem)Funcionario - RegistraExame - Exame------------------------------Cadastrei na tabela "REGISTRAEXAME" o funcionário + exame, salvei e deu certo.Quando chamo minha tela para alterar esse registro, dá erro ao alterá-lo.Meu método para alterar o registro: RegistraExame registraExame = new RegistraExame(); registraExame.setDtExame(dtExame.getText()); registraExame.setMedico(medico.getText().toUpperCase()); registraExame.setPressaoArterialSistolica(pressaoArterialSistolica.getText()); registraExame.setPressaoArterialDiastolica(pressaoArterialDiastolica.getText()); registraExame.setPressaoArterialMedia(pressaoArterialMedia.getText()); registraExame.setResultadoPam(resultadoPam.getText()); registraExame.setDescMedica(descMedica.getText().toUpperCase()); registraExame.setFuncionario((Funcionario)comboFuncionario.getSelectedItem()); registraExame.setExame((Exame)comboExame.getSelectedItem()); (aqui está com problema) :blink: RegistraExameDAO registraExameDAO = new RegistraExameDAO(); registraExameDAO.gravar(registraExame);------------------------ero gerado:Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: persistencia.RegistraExame cannot be cast to persistencia.Exame at telas.PesquisarRegistraExame.btnAlterarActionPerformed(PesquisarRegistraExame.java:913)-----------------------No aguardo de uma ajuda.Aline Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Maio 17, 2011 Denunciar Share Postado Maio 17, 2011 i aew Aline Lozano, pelo que vi no erro, o problema está no cast, você está tentando converter uma String para Exame.espero que ajude, abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aline Lozano Postado Maio 19, 2011 Autor Denunciar Share Postado Maio 19, 2011 i aew Aline Lozano, pelo que vi no erro, o problema está no cast, você está tentando converter uma String para Exame.espero que ajude, abraço!Desculpe a ignorância, mas fiquei na mesma, não tenho a mínima idéia do que fazer.Aline Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Maio 20, 2011 Denunciar Share Postado Maio 20, 2011 bom o método setExame da classe RegistraExame espera receber um objeto do tipo Exame e você está passando um objeto String e tentando fazer o cast de String para Exame, esse é o problema, se não conseguir resolver, mostre como está sua classe RegistraExame para tentarmos ajudar! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aline Lozano Postado Maio 20, 2011 Autor Denunciar Share Postado Maio 20, 2011 bom o método setExame da classe RegistraExame espera receber um objeto do tipo Exame e você está passando um objeto String e tentando fazer o cast de String para Exame, esse é o problema, se não conseguir resolver, mostre como está sua classe RegistraExame para tentarmos ajudar!Minha persistencia: RegistraExame@Entity@NamedQueries(value = { @NamedQuery (name = "ListarExamesFuncionario.listarTodos", query = "from RegistraExame registraExame where registraExame.funcionario =?")})@Table (name = "RegistraExame")public class RegistraExame { //DECLARAÇÕES DE ATRIBUTOS @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer idExame; @Column (name= "dtExame") private String dtExame; @Column (name= "medico") private String medico; @Column (name= "pressaoArterialSistolica") private String pressaoArterialSistolica; @Column (name= "pressoaArterialDiastolica") private String pressaoArterialDiastolica; @Column (name= "pressaoArterialMedia") private String pressaoArterialMedia; @Column (name= "resultadoPam") private String resultadoPam; @Column (name= "peso") private String peso; @Column (name= "altura") private String altura; @Column (name= "imc") private String imc; @Column (name= "descMedica") private String descMedica; @ManyToOne private Funcionario funcionario; @ManyToOne private Exame exame; //MÉTODOS GET / SETMinha Classe RegistrarExamepackage telas;//SEÇÃO DE IMPORTAÇÃOimport dao.RegistraExameDAO;import dao.LaboratorioDAO;import dao.ExameDAO;import dao.ItensTussDAO;import dao.FuncionarioDAO;import java.text.NumberFormat;import java.util.List;import javax.swing.JOptionPane;import javax.swing.table.DefaultTableModel;import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;import persistencia.RegistraExame;import persistencia.Exame;import persistencia.Laboratorio;import persistencia.ItensTuss;import persistencia.Funcionario;public class RegistrarExame extends javax.swing.JFrame { /** Creates new form RegistrarExame */ public RegistrarExame() { initComponents(); carregaComboFuncionario(); carregaComboExame(); carregaComboTuss(); } public void carregaComboFuncionario() { FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); List<Funcionario> lista = funcionarioDAO.listarTudo(); comboFuncionario.addItem("--- Selecione ---"); for (Funcionario funcionario : lista) { comboFuncionario.addItem(funcionario); AutoCompleteDecorator.decorate(comboFuncionario); } } public void carregaComboExame() { ExameDAO exameDAO = new ExameDAO(); List<Exame> lista = exameDAO.listarTudo(); comboExame.addItem("--- Selecione ---"); for (Exame exame : lista) { comboExame.addItem(exame); AutoCompleteDecorator.decorate(comboExame); } } public void carregaComboTuss() { LaboratorioDAO laboratorioDAO = new LaboratorioDAO(); List<Laboratorio> lista = laboratorioDAO.listarTudo(); comboTuss.addItem("--- Selecione ---"); for (Laboratorio laboratorio : lista) { comboTuss.addItem(laboratorio); AutoCompleteDecorator.decorate(comboTuss); } } Meu RegistraExameDAO:package dao;//SEÇÃO DE IMPORTAÇÃOimport java.util.List;import org.hibernate.Query;import org.hibernate.Transaction;import org.hibernate.Session;import persistencia.Funcionario;import util.HibernateUtil;import persistencia.RegistraExame;public class RegistraExameDAO { //CRIANDO UMA SESSÃO private Session sessao = HibernateUtil.getSessionFactory().openSession(); //MÉTODO DE INCLUSÃO DE DADOS NA TABELA CompraEpi public void gravar(RegistraExame registraExame) { Transaction transacao = sessao.beginTransaction(); sessao.saveOrUpdate(registraExame); transacao.commit(); }//FIM DO MÉTODO DE INCLUSÃO //MÉTODO DE EXCLUSÃO DE DADOS NA TABELA CompraEpi public void excluir(RegistraExame registraExame) { Transaction transacao = (Transaction) sessao.beginTransaction(); sessao.delete(registraExame); transacao.commit(); }//FIM DO MÉTODO DE EXCLUSÃO //MÉTODO DE LISTAR public List<RegistraExame> listarExamesFuncionario (Funcionario funcionario){ Transaction transacao = sessao.beginTransaction(); Query query = sessao.getNamedQuery("ListarExamesFuncionario.listarTodos"); query.setParameter(0, funcionario); List<RegistraExame> lista = query.list(); transacao.commit(); return lista; }}Obrigada,Aline Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Maio 20, 2011 Denunciar Share Postado Maio 20, 2011 como estão os construtores da classe Exame?se possível coloca a classe, até! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Aline Lozano Postado Maio 25, 2011 Autor Denunciar Share Postado Maio 25, 2011 como estão os construtores da classe Exame?se possível coloca a classe, até!olá, consegui resolver a situação com a ajuda de um amigo:no método alterar, a linha de comando estava assim:registraExame.setExame((Exame)comboExame.getSelectedItem());mas o correto é assim:registraExame.setExame(((RegistraExame)comboExame.getSelectedItem()).getExame() );Obrigada!Aline Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Aline Lozano
Boa tarde,
estou com problema na alteração de arquivos.
Tenho meu diagrama de classe da seguinte forma: (não consegui colocar a imagem)
Funcionario - RegistraExame - Exame
------------------------------
Cadastrei na tabela "REGISTRAEXAME" o funcionário + exame, salvei e deu certo.
Quando chamo minha tela para alterar esse registro, dá erro ao alterá-lo.
Meu método para alterar o registro:
RegistraExame registraExame = new RegistraExame();
registraExame.setDtExame(dtExame.getText());
registraExame.setMedico(medico.getText().toUpperCase());
registraExame.setPressaoArterialSistolica(pressaoArterialSistolica.getText());
registraExame.setPressaoArterialDiastolica(pressaoArterialDiastolica.getText());
registraExame.setPressaoArterialMedia(pressaoArterialMedia.getText());
registraExame.setResultadoPam(resultadoPam.getText());
registraExame.setDescMedica(descMedica.getText().toUpperCase());
registraExame.setFuncionario((Funcionario)comboFuncionario.getSelectedItem());
registraExame.setExame((Exame)comboExame.getSelectedItem()); (aqui está com problema) :blink:
RegistraExameDAO registraExameDAO = new RegistraExameDAO();
registraExameDAO.gravar(registraExame);
------------------------
ero gerado:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: persistencia.RegistraExame cannot be cast to persistencia.Exame
at telas.PesquisarRegistraExame.btnAlterarActionPerformed(PesquisarRegistraExame.java:913)
-----------------------
No aguardo de uma ajuda.
Aline
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.