Erro no hibernate

3 respostas
Ginhu

Galera, estou com esse erro e nao consigo descobrir de jeito nenhum me ajudem !
estou tentando inserir numa tabela oracle, que possui uma sequence que é o id
esse id é um number(5,0)
e na minha entidade está com bigdecimal, ok ?? Me ajude m

this id generator generates long, integer, short or string; nested exception is org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, short or string

org.springframework.orm.hibernate3.HibernateSystemException: this id generator generates long, integer, short or string; nested exception is org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, short or string

at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:659)

at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:95)

at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:306)

at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:62)

at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:146)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:631)

at com.diebold.medial.db.dao.MedModeloDao$$EnhancerByCGLIB$$d687e0c3.insert(<generated>)

at com.diebold.medial.db.facade.MedModeloFacade.insert(MedModeloFacade.java:34)

at com.diebold.medial.tst.MedModeloFacadeTest.testInsert(MedModeloFacadeTest.java:98)

Caused by: org.hibernate.id.IdentifierGenerationException: this id generator generates long, integer, short or string

at org.hibernate.id.IdentifierGeneratorFactory.get(IdentifierGeneratorFactory.java:59)

at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:78)

at org.hibernate.id.SequenceHiLoGenerator.generate(SequenceHiLoGenerator.java:58)

at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)

at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)

at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)

at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)

at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)

at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)

at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)

at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)

at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:220)

at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:193)

at $Proxy20.persist(Unknown Source)

at com.diebold.medial.db.dao.MedModeloDao.insert(MedModeloDao.java:36)

at com.diebold.medial.db.dao.MedModeloDao$$FastClassByCGLIB$$aefbbd7c.invoke(<generated>)

at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:696)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:138)

3 Respostas

T

Qual generator vc está usando?

Ginhu

Então cara estou usando o Sequence…

@Entity

@Table(name = MED_MODELO)

@SequenceGenerator(name=SEQUENCE_MODELO, sequenceName=MODE_ID, allocationSize=20)

@NamedQueries({@NamedQuery(name = MedModelo.findAll, query = SELECT m FROM MedModelo m), @NamedQuery(name = MedModelo.findByModeId, query = SELECT m FROM MedModelo m WHERE m.modeId = :modeId), @NamedQuery(name = MedModelo.findByModeDs, query = SELECT m FROM MedModelo m WHERE m.modeDs = :modeDs), @NamedQuery(name = MedModelo.findByModeSt, query = SELECT m FROM MedModelo m WHERE m.modeSt = :modeSt), @NamedQuery(name = MedModelo.findByModeDtAtz, query = SELECT m FROM MedModelo m WHERE m.modeDtAtz = :modeDtAtz), @NamedQuery(name = MedModelo.findByModeCdUsuario, query = SELECT m FROM MedModelo m WHERE m.modeCdUsuario = :modeCdUsuario)})

public class MedModelo implements Serializable {

private static final long serialVersionUID = 1L;

@Id

@GeneratedValue(strategy=GenerationType.SEQUENCE, generator=SEQUENCE_MODELO)

<a class="mention" href="/u/basic">@Basic</a>(optional = false)

@Column(name = MODE_ID)

private BigDecimal modeId;
Ginhu

Consegui galera, troquei o tipo de Bigdecimal para Integer e funcionou…espero não ter nenhum efeito colateral, mesmo pq quem me gerou a Entidade foi o próprio NetBeans…

Criado 12 de janeiro de 2009
Ultima resposta 13 de jan. de 2009
Respostas 3
Participantes 2