Я использую hibernate для отображения наших классов на таблицы в oracle.Мой класс имеет первичный ключ как идентификатор, автоматически генерируется hibernate
<id name="jobId" type="long">
<column name="JOBID" />
<generator class="increment" />
</id>
В моем коде я делаю:
Job job = new Job();
do some config for the job.
saveOrUpdate(job);
При этом saveOrUpdate я столкнулся:
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
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:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at com.myCompany.BasicDaoImpl.saveOrUpdate(BasicDaoImpl.java:37)
at com.myCompany.JobRoutine.generateJob(JobRoutine.java:142)
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (DBGROUP.SYS_C0011345) violated
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10700)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 13 more
Я считаю, что ограничение - priamry_key.Эта ошибка не всегда радует, но иногда.
Может ли кто-нибудь дать мне несколько советов по этому поводу?
Большое спасибо!