Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao Alterar um arquivo


Aline Lozano

Pergunta

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

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0
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 / SET

Minha Classe RegistrarExame

package telas;

//SEÇÃO DE IMPORTAÇÃO

import 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ÇÃO

import 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

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...