Erro EJB - JPA: javax.persistence.RollbackException: Exception [TOPLINK-7009]

Pessoal,

Alguém já viu este erro??

Exception Description: Missing descriptor for [java.lang.Integer].  Verify that the descriptor has been properly registered with the Session.
javax.persistence.RollbackException: Exception [TOPLINK-7009] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: Missing descriptor for [java.lang.Integer].  Verify that the descriptor has been properly registered with the Session.
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:120)
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.EntityTransactionImpl.commit(EntityTransactionImpl.java:60)
        at br.com.reserva.EJB.ReservaSessionBeanBean.findAeroporto(ReservaSessionBeanBean.java:70)
        at br.com.reserva.teste.TestaEJB.main(TestaEJB.java:20)
Caused by: Exception [TOPLINK-7009] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.ValidationException
Exception Description: Missing descriptor for [java.lang.Integer].  Verify that the descriptor has been properly registered with the Session.
        at oracle.toplink.essentials.exceptions.ValidationException.missingDescriptor(ValidationException.java:2000)
        at oracle.toplink.essentials.internal.descriptors.DescriptorIterator.getDescriptorFor(DescriptorIterator.java:121)
        at oracle.toplink.essentials.internal.descriptors.DescriptorIterator.iterateReferenceObjectForMapping(DescriptorIterator.java:294)
        at oracle.toplink.essentials.mappings.CollectionMapping.iterateOnElement(CollectionMapping.java:636)
        at oracle.toplink.essentials.mappings.CollectionMapping.iterateOnRealAttributeValue(CollectionMapping.java:650)
        at oracle.toplink.essentials.internal.indirection.IndirectionPolicy.iterateOnAttributeValue(IndirectionPolicy.java:222)
        at oracle.toplink.essentials.internal.indirection.TransparentIndirectionPolicy.iterateOnAttributeValue(TransparentIndirectionPolicy.java:304)
        at oracle.toplink.essentials.mappings.ForeignReferenceMapping.iterate(ForeignReferenceMapping.java:587)
        at oracle.toplink.essentials.internal.descriptors.ObjectBuilder.iterate(ObjectBuilder.java:2099)
        at oracle.toplink.essentials.internal.descriptors.DescriptorIterator.iterateReferenceObjects(DescriptorIterator.java:311)
        at oracle.toplink.essentials.internal.descriptors.DescriptorIterator.startIterationOn(DescriptorIterator.java:484)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.discoverUnregisteredNewObjects(RepeatableWriteUnitOfWork.java:161)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.discoverAllUnregisteredNewObjects(UnitOfWorkImpl.java:1292)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.assignSequenceNumbers(UnitOfWorkImpl.java:382)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.collectAndPrepareObjectsForCommit(UnitOfWorkImpl.java:721)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitToDatabaseWithChangeSet(UnitOfWorkImpl.java:1112)
        at oracle.toplink.essentials.internal.ejb.cmp3.base.RepeatableWriteUnitOfWork.commitRootUnitOfWork(RepeatableWriteUnitOfWork.java:107)
        at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.commitAndResume(UnitOfWorkImpl.java:856)
        at oracle.toplink.essentials.internal.ejb.cmp3.transaction.base.EntityTransactionImpl.commit(EntityTransactionImpl.java:102)
        ... 3 more

Isso ocorre em uma relaçõo Onetomany que ele pede uma collection…

@OneToMany(mappedBy = “fkCdAeroporto”)
private Collection vooCollection;

Estou passando os valores da seguinte forma:

List reserva = new ArrayList();
            reserva.add(1);
            
            List voo  = new ArrayList();
            voo.add(1);
            
            Aeroporto a = new Aeroporto();
            a.setCdAeroporto(Short.parseShort("1"));
            a.setNmAeroporto("nmAeroporto");
            a.setNmCidAeroporto("nmCidadeAero");
            a.setReservaCollection(reserva);
            a.setVooCollection(voo);
            em.persist(a);
            
            em.getTransaction().commit();

obrigado

Pessoal,

neste caso eu estava tentando inserir em campos de relacionamento de outras tabelas…

Foi só inserir somente nos campos da tabela que estou trabalhando que o erro não apareceu mais.

Obrigado…