Reputation: 127
I have my application with Spring 3 that went so well. Basically the client wanted to migrate db from MySQL to Oracle. So everything is right; the problem is presented with the sequence of Oracle. I tried in every way to configure Hibernate but I always get the error
org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assi
gned before calling save():
org.hibernate.id.Assigned.generate(Assigned.java:52)
org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:117)
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:206)
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:191)
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:114)
org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)
org.hibernate.internal.SessionImpl.fireSaveOrUpdate(SessionImpl.java:735)
org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:727)
org.hibernate.internal.SessionImpl.saveOrUpdate(SessionImpl.java:723)
it.openingcode.vwh.dao.AbstractHibernateDAOImpl.save(AbstractHibernateDAOImpl.java:48)
it.openingcode.vwh.dao.AbstractHibernateDAOImpl.save(AbstractHibernateDAOImpl.java:20)
it.openingcode.vwh.services.AbstractCrudServiceImpl.save(AbstractCrudServiceImpl.java:70)
it.openingcode.vwh.services.AbstractCrudServiceImpl.saveAll(AbstractCrudServiceImpl.java:77)
it.openingcode.vwh.services.PrivilegiServiceImpl.updateFromGruppo(PrivilegiServiceImpl.java:92)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:606)
In the model I added the annotation as follows:
@Id @GeneratedValue(strategy = GenerationType.AUTO, generator="my_entity_seq_gen") @SequenceGenerator(name="my_entity_seq_gen", sequenceName="SEQ_PROFILI") @Column(name = "ID") private Long id;
Upvotes: 2
Views: 648
Reputation: 1
Put this annotation if you want to use it with Oracle
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="my_entity_seq_gen")
Upvotes: 1