Quantcast
Channel: GUJ - Tópicos com a tag hibernate
Viewing all articles
Browse latest Browse all 759

Erro na inserção de dados no banco de dados:Can not set int field... to java.lang.String

$
0
0

@LeoRDS escreveu:

Olá pessoal!
Estou tentando inserir dados em uma tabela de relacionamento muitos para muitos, a aplicação é um sistema escolar, e estou inserindo uma turma e seus respectivos alunos no banco de dados, para isso estou usando o picklist do primefaces para puxar todos os alunos cadastrados no banco de dados, e selecionar só os que eu quero que façam parte da turma. Eu consigo inserir todas as informações normalmente, no console do eclipse eu consigo identificar o insert que ele dá na table Turma, só que na hora de dar o insert na tabela de relacionamento Turma_Alunos, apresenta o seguintes Erro: Caused by: java.lang.IllegalArgumentException: Can not set int field br.com.digitaltech.model.Aluno.id to java.lang.String

**Erro completo**
>     GRAVE: JSF1073: javax.faces.event.AbortProcessingException obtido durante o processamento de INVOKE_APPLICATION 5: UIComponent-ClientId=j_idt18:j_idt34, Message=javax.persistence.RollbackException: Error while committing the transaction
>     ago 28, 2016 7:58:28 PM com.sun.faces.context.AjaxExceptionHandlerImpl log
>     GRAVE: javax.persistence.RollbackException: Error while committing the transaction
>     javax.faces.event.AbortProcessingException: javax.persistence.RollbackException: Error while committing the transaction
>         at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:182)
>         at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
>         at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:772)
>         at javax.faces.component.UICommand.broadcast(UICommand.java:300)
>         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
>         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
>         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
>         at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
>         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>         at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
>         at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
>         at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
>         at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
>         at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>         at java.lang.Thread.run(Unknown Source)
>     Caused by: javax.persistence.RollbackException: Error while committing the transaction
>         at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:93)
>         at br.com.digitaltech.dao.TurmaDAO.insert(TurmaDAO.java:26)
>         at br.com.digitaltech.business.TurmaSB.insert(TurmaSB.java:16)
>         at br.com.digitaltech.view.TurmaMB.doInsert(TurmaMB.java:46)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at org.apache.el.parser.AstValue.invoke(AstValue.java:279)
>         at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:273)
>         at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:153)
>         ... 29 more
>     Caused by: javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.com.digitaltech.model.Aluno.id
>         at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1179)
>         at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1112)
>         at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:81)
>         ... 39 more
>     Caused by: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.com.digitaltech.model.Aluno.id
>         at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:62)
>         at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:230)
>         at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3852)
>         at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3560)
>         at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:204)
>         at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:243)
>         at org.hibernate.type.EntityType.getIdentifier(EntityType.java:449)
>         at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:132)
>         at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:816)
>         at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1204)
>         at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
>         at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268)
>         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:260)
>         at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:183)
>         at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
>         at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
>         at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
>         at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
>         at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
>         at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76)
>         ... 39 more
>     Caused by: java.lang.IllegalArgumentException: Can not set int field br.com.digitaltech.model.Aluno.id to java.lang.String
>         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
>         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source)
>         at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(Unknown Source)
>         at sun.reflect.UnsafeIntegerFieldAccessorImpl.getInt(Unknown Source)
>         at sun.reflect.UnsafeIntegerFieldAccessorImpl.get(Unknown Source)
>         at java.lang.reflect.Field.get(Unknown Source)
>         at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:59)
>         ... 58 more

View
package br.com.digitaltech.view;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import org.primefaces.model.DualListModel;

import lombok.Getter;
import lombok.Setter;
import br.com.digitaltech.business.AlunoSB;
import br.com.digitaltech.business.CursoSB;
import br.com.digitaltech.business.TurmaSB;
import br.com.digitaltech.enums.PeriodoEnum;
import br.com.digitaltech.model.Aluno;
import br.com.digitaltech.model.Curso;
import br.com.digitaltech.model.Turma;

@Getter
@Setter
@ManagedBean
public class TurmaMB {
    private Turma edit = new Turma();
    private List<Curso> cursos;
    private PeriodoEnum[] periodos;
    private DualListModel<Aluno> alunos = null;
    private CursoSB cursoSB = new CursoSB();
    private TurmaSB turmaSB = new TurmaSB();
    private AlunoSB alunoSB = new AlunoSB();
    
    @PostConstruct
    public void doSelectMenu() {
        periodos = PeriodoEnum.values();
        cursos = cursoSB.findAll();
        List<Aluno> source = alunoSB.findAll();
        List<Aluno> target = new ArrayList<Aluno>();
        alunos = new DualListModel<Aluno>(source, target);
    }

    public void doInsert() {
        edit.setAlunos(alunos.getTarget());
        turmaSB.insert(edit);

        FacesContext ctx = FacesContext.getCurrentInstance();
        ctx.addMessage(null, new FacesMessage("Turma Inserida com Sucesso."));
    }
}

Classe Turma

package br.com.digitaltech.model;

import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import br.com.digitaltech.enums.PeriodoEnum;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "TBL_TURMA")
public class Turma {
    @Column(name = "ID_TURMA")
    @Id
    @GeneratedValue
    private int id;

    @Column(name = "TX_NOME")
    private String nome;

    @JoinColumn(name = "ID_CURSO")
    @ManyToOne
    private Curso curso = new Curso();

    @Column(name="NR_PERIODO")
    @Enumerated(EnumType.ORDINAL)
    private PeriodoEnum periodo;

    // Relacionamentos N para N

    @JoinTable(name = "TBL_TURMA_ALUNO", joinColumns = { @JoinColumn(name = "ID_TURMA") }, inverseJoinColumns = { @JoinColumn(name = "ID_ALUNO") })
    @ManyToMany
    private List<Aluno> alunos;
}

Classe Alunos
package br.com.digitaltech.model;

import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "TBL_ALUNO")
public class Aluno {
    @Column(name = "ID_ALUNO")
    @Id
    @GeneratedValue
    private int id;

    @JoinColumn(name = "ID_CURSO")
    @ManyToOne
    private Curso curso;

    @JoinColumn(name = "ID_MODULO")
    @ManyToOne
    private Modulo modulo;

    @Column(name = "TX_NOME_ALUNO")
    private String nome;

    @Column(name = "TX_CPF")
    private String cpf;

    @Column(name = "DT_DATA_NASCIMENTO")
    @Temporal(TemporalType.DATE)
    private Date dataNascimento;

    @Column(name = "DT_DATA_MATRICULA")
    @Temporal(TemporalType.DATE)
    private Date dataMatricula;
    
    @Column(name = "TX_TELEFONE")
    private String telefone;

    @Column(name = "TX_EMAIL")
    private String email;

    @Column(name = "TX_ENDERECO")
    private String endereco;

    @Transient
    private int impressaoDigital;

    @Transient
    private int faltas;

    // Relacionamento N pra N

    @JoinTable(name = "TBL_TURMA_ALUNO",
            joinColumns = { @JoinColumn(name = "ID_ALUNO") },
            inverseJoinColumns = { @JoinColumn(name = "ID_TURMA") })
    @ManyToMany
    private List<Turma> turmas;
    
    @JoinTable(name = "TBL_ALUNO_MATERIA",
            joinColumns = { @JoinColumn(name = "ID_ALUNO") },
            inverseJoinColumns = { @JoinColumn(name = "ID_MATERIA") })
    @ManyToMany
    private List<Materia> materias;
}

Será que está faltando algo?

Mensagens: 4

Participantes: 2

Ler tópico completo


Viewing all articles
Browse latest Browse all 759

Trending Articles


“Mali man na ikaw ay ibigin ko, akoy iibig padin sayo”


UPDATE SC IDOL: TWO BECOME ONE


Pokemon para colorear


Sapos para colorear


Love Quotes Tagalog


Long Distance Relationship Tagalog Love Quotes


Top 10 Best “Single” Tagalog Love Quotes


Re:Mutton Pies (lleechef)


Ka longiing longsem kaba skhem bad kaba khlain ka pynlong kein ia ka...


EASY COME, EASY GO


FORECLOSURE OF REAL ESTATE MORTGAGE


HOY PANGIT, MAGBAYAD KA!


Girasoles para colorear


Presence Quotes – Positive Quotes


The business quotes | Inspirational and Motivational Quotes for you


5 Tagalog Relationship Rules


“BAHAY KUBO HUGOT”


RE: Mutton Pies (frankie241)


Vimeo 10.7.0 by Vimeo.com, Inc.


Vimeo 10.7.1 by Vimeo.com, Inc.



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>