Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: class java.lang.String cannot be cast to class model.MedicoEspecializacao (java.lang.String is in module java.base of loader ‘bootstrap’; model.MedicoEspecializacao is in unnamed module of loader ‘app’).
Novo Medico JInternalFrame
public NovoMedico() {
jComboBoxEsp.removeAllItems();
MedicoDAO medDao=new MedicoDAO();
List<MedicoEspecializacao> list=medDao.finAll();
for(MedicoEspecializacao item: list){
jComboBoxEsp.addItem(item.getEspecialidade());
}
private void jButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Medico med=new Medico();
MedicoDAO medDao=new MedicoDAO();
MedicoEspecializacao esp=new MedicoEspecializacao();
med.setNomeMedico(jTextFieldMedico.getText());
med.setUF((String) jComboBoxUF.getSelectedItem());
med.setMunicipio((String) jComboBoxMun.getSelectedItem());
med.setCrm(jTextFieldCRM.getText());
med.setMedEsp((MedicoEspecializacao) jComboBoxEsp.getSelectedItem()); <-- Erro está aqui !!!
medDao.salvar(med);
}
Classe Medico
@Entity
public class Medico {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nomeMedico;
private String UF;
private String municipio;
private String crm;
@ManyToOne
private MedicoEspecializacao medEsp;
public Medico() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNomeMedico() {
return nomeMedico;
}
public void setNomeMedico(String nomeMedico) {
this.nomeMedico = nomeMedico;
}
public String getUF() {
return UF;
}
public void setUF(String UF) {
this.UF = UF;
}
public String getMunicipio() {
return municipio;
}
public void setMunicipio(String municipio) {
this.municipio = municipio;
}
public String getCrm() {
return crm;
}
public void setCrm(String crm) {
this.crm = crm;
}
public MedicoEspecializacao getMedEsp() {
return medEsp;
}
public void setMedEsp(MedicoEspecializacao medEsp) {
this.medEsp = medEsp;
}
@Override
public int hashCode() {
int hash = 7;
hash = 67 * hash + Objects.hashCode(this.id);
return hash;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Medico other = (Medico) obj;
if (!Objects.equals(this.id, other.id)) {
return false;
}
return true;
}
@Override
public String toString() {
return "Medico{" + "id=" + id + ", nomeMedico=" + nomeMedico + ", UF=" + UF + ", municipio=" + municipio + ", crm=" + crm + ", medEsp=" + medEsp + '}';
}
}
MedicoDao
public Medico salvar(Medico med)
{
EntityManager em = new JPAUtil().getConnection();
try {
em.getTransaction().begin();
if (med.getId() == null) {
em.persist(med);
} else {
em.merge(med);
}
em.persist(med);
em.getTransaction().commit();
em.close();
} catch (Exception e) {
System.err.println(e);
em.getTransaction().rollback();
} finally {
em.close();
}
return med;
}
public List<MedicoEspecializacao> finAll() {
EntityManager em = new JPAUtil().getConnection();
List<MedicoEspecializacao> medicosEsp = null;
try {
medicosEsp = em.createQuery("from MedicoEspecializacao m").getResultList();
} catch (Exception e) {
System.err.println(e);
} finally {
em.close();
}
return medicosEsp;
}