Problema na conexão: java.lang.String cannot be cast to java.lang.Integer

2 respostas
J

Pessoal, não estou conseguindo realizar minha conexão com o banco de dados. Está dando um erro de conversão que eu não consigo achar onde está o problema.
O problema está no campo Telefone, ele está como varchar(15) no banco de dados

Modelo:
public class Telefones  implements java.io.Serializable {

    @Id
    @GeneratedValue
     private Integer idTelefones;
     private String telResidencial;
     private String telefoneCelular;
     private Set funcionarios = new HashSet(0);
     private Set alunos = new HashSet(0);
     private Set docentes = new HashSet(0);

    public Telefones() {
    }

    public Telefones(String telResidencial, String telefoneCelular, Set funcionarios, Set alunos, Set docentes) {
       this.telResidencial = telResidencial;
       this.telefoneCelular = telefoneCelular;
       this.funcionarios = funcionarios;
       this.alunos = alunos;
       this.docentes = docentes;
    }
   
    public Integer getIdTelefones() {
        return this.idTelefones;
    }
    
    public void setIdTelefones(Integer idTelefones) {
        this.idTelefones = idTelefones;
    }
    public String getTelResidencial() {
        return this.telResidencial;
    }
    
    public void setTelResidencial(String telResidencial) {
        this.telResidencial = telResidencial;
    }
    public String getTelefoneCelular() {
        return this.telefoneCelular;
    }
    
    public void setTelefoneCelular(String telefoneCelular) {
        this.telefoneCelular = telefoneCelular;
    }
    public Set getFuncionarios() {
        return this.funcionarios;
    }
    
    public void setFuncionarios(Set funcionarios) {
        this.funcionarios = funcionarios;
    }
    public Set getAlunos() {
        return this.alunos;
    }
    
    public void setAlunos(Set alunos) {
        this.alunos = alunos;
    }
    public Set getDocentes() {
        return this.docentes;
    }
    
    public void setDocentes(Set docentes) {
        this.docentes = docentes;
    }
}

botão salvar:

private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if      (textoNome.getText().isEmpty() 
                || textoEndereco.getText().isEmpty()
                //|| jFormattedMatricula.getText().isEmpty()
               // || textoCidade.getText().isEmpty()
               // || textoBairro.getText().isEmpty()
               // || textoComplemento.getText().isEmpty()
               // || textoGrauInstrucao.getText().isEmpty()
                || jTextField1.getText().isEmpty()
               // || textoCidade.getText().isEmpty()
               // || jFormattedCep.getText().isEmpty()
                //|| jFormattedDataAdmissao.getText().isEmpty()
               // || jFormattedNascimento.getText().isEmpty()
               // || jFormattedCpf.getText().isEmpty()
                || TextoMateriaLeciona.getText().isEmpty()
                //|| jFormattedRG.getText().isEmpty()
               // || jFormattedCelular.getText().isEmpty()
                || textoEmail.getText().isEmpty()
                || jTextEstadoCivil.getText().isEmpty()
                ) {
            
            
            JOptionPane.showMessageDialog(this,"Por favor, informe o valor de todos os campos");
        }else{
            Enderecos e = new Enderecos();
            e.setEndereco(textoEndereco.getText());
           /* e.setBairro((textoBairro.getText()));
            e.setCidade(textoCidade.getText());
            e.setNumero(Integer.parseInt(jFormattedMunero.getText()));
            e.setCep(Integer.parseInt(jFormattedCep.getText()));
            e.setUf(cbUF.getSelectedItem().toString());
            e.setComplemento(textoComplemento.getText());
            */
            
            Telefones t = new Telefones();
            t.setTelResidencial(jTextField1.getText());
           // t.setTelefoneCelular(Integer.parseInt(jFormattedCelular.getText()));
            
            Docente d = new Docente();
            d.setEnderecos(e);
            d.setTelefones(t);
            d.setNome(textoNome.getText());
            //d.setEmail(textoEmail.getText());
           // d.setEstadoCivil(jTextEstadoCivil.getText());
           // d.setCpf(jFormattedCpf.getText());
           // d.setGrauDeInstrucao(textoGrauInstrucao.getText());
            d.setMateriaLeciona(TextoMateriaLeciona.getText());
            
            /*try {
                d.setNascimento(Util.strToData(jFormattedNascimento.getText(), null));
                d.setDtAdmissao(Util.strToData(jFormattedDataAdmissao.getText(), null));
                d.setDtDemissao(Util.strToData(jFormattedDataDemissao.getText(), null));
                                
                
            } catch (Exception ex) {
                Logger.getLogger(CadastroDocente.class.getName()).log(Level.SEVERE, null, ex);
            }*/
            //banco de dados
            
            Session s = HibernateUtil.getSessionFactory().getCurrentSession();
           s.beginTransaction();
            s.save(e);
            s.save(t);
            s.save(d);
            s.getTransaction().commit();
            
            JOptionPane.showMessageDialog(this,"Cadastrados com sucesso");
        }
}
Erro:
INFO: could not bind value 'fsfdfds' to parameter: 1; java.lang.String cannot be cast to java.lang.Integer
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
	at org.hibernate.type.IntegerType.set(IntegerType.java:41)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:107)
	at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1997)
	at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:1974)
	at org.hibernate.persister.entity.AbstractEntityPersister$3.bindValues(AbstractEntityPersister.java:2152)
	at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:32)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2158)
	at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2638)
	at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
	at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
	at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
	at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
	at $Proxy0.save(Unknown Source)
	at CadastroDocente.btSalvarActionPerformed(CadastroDocente.java:684)
	at CadastroDocente.access$1500(CadastroDocente.java:23)
	at CadastroDocente$15.actionPerformed(CadastroDocente.java:504)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6289)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
	at java.awt.Component.processEvent(Component.java:6054)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4652)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4482)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2478)
	at java.awt.Component.dispatchEvent(Component.java:4482)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
	at java.awt.EventQueue.access$000(EventQueue.java:85)
	at java.awt.EventQueue$1.run(EventQueue.java:603)
	at java.awt.EventQueue$1.run(EventQueue.java:601)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$2.run(EventQueue.java:617)
	at java.awt.EventQueue$2.run(EventQueue.java:615)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

2 Respostas

L

Aparentemente o problema não ta ai e o unico Integer que você tem na classe telefone é o idTelefone que é @GeneratedValue e @Id, em algum outro lugar você deve ta setando uma string pra dentro de um Integer revise seu código e ve se em algum momento você não seta o idTelefone, provavelmente tem algum campo trocado e você ta tentando setar o que você digitou no campo pra dentro dele que no caso foi isso ‘fsfdfds’.

J

Consegui consertar, apaguei e comecei tudo de novo, e coloquei o campo não estava convertendo para string, assim ficou mais fácil.
Obrigado.

Criado 30 de maio de 2012
Ultima resposta 31 de mai. de 2012
Respostas 2
Participantes 2