-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Insert/Delete problem during commit after merge()
PostPosted: Wed May 17, 2006 6:15 am 
Newbie

Joined: Sat May 06, 2006 6:31 am
Posts: 9
Hi,
I have detached object graph that I try to merge.
One of detached entities in this graph is removed and replaced with new entity (which is not presented in DB yet). Removed and new entity cannot exist in the database in the same time due to existing constraint, so first deleted object should be deleted from DB, the new one should be inserted. In reality, Hibernate first tries to insert new object and it fails on constraint.
I put all needed DELETE_ORPHANS.
When I've checked in the debugger, I see that during commit, it reaches ActionQueue.executeActions(). Though object to be deleted is presented in 'deletions' list, first insertions are executed, and it predictable fails. Is it bug in Hibernate, or I should use some additional flags?

Object relations:
Code:
                                          Process
                                       /         \
      Cascade.All                     /             \ Cascade.All
      Cascade.DELETE_ORPH           /                  \ Cascade.DELETE_ORPH 
                                  /                      \
                                /                          \
                              /                              \
                             Node------- Cascade.ALL ------  Link

I replace entity of type Link with new one and remove old from all relevant collections - Process.getLinks() and Node. getLinks(), so object graph is consistent before merge(Process)

Thanks in advance,
Igor


Hibernate version:3.1

Code between sessionFactory.openSession() and session.close():

Process process = processFromXml(); // recreate Process graph from XML
session.merge(process);

Full stack trace of any exception that occurs:
13:57:13,734 DEBUG SQL:393 - insert into abm_process_link (from_node, to_node, label, process, id) values (?, ?, ?, ?, ?)
Hibernate: insert into abm_process_link (from_node, to_node, label, process, id) values (?, ?, ?, ?, ?)
13:57:13,796 WARN JDBCExceptionReporter:71 - SQL Error: 1, SQLState: 23000
13:57:13,796 ERROR JDBCExceptionReporter:72 - ORA-00001: unique constraint (EX_ABM.ABM_PROCESS_LINK_ENDS_UK) violated

13:57:13,796 WARN JDBCExceptionReporter:71 - SQL Error: 1, SQLState: 23000
13:57:13,796 ERROR JDBCExceptionReporter:72 - ORA-00001: unique constraint (EX_ABM.ABM_PROCESS_LINK_ENDS_UK) violated

13:57:13,812 ERROR AbstractFlushingEventListener:300 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:988)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:337)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at exactcost.abm.bl.entity.process.ProcessTest.testImportProcess(ProcessTest.java:455)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (EX_ABM.ABM_PROCESS_LINK_ENDS_UK) violated

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10656)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:242)
... 21 more

Name and version of the database you are using:Oracle9i


Debug level Hibernate log excerpt:

EL(mt:VAATTRIBUTE): Method: public void exactcost.abm.bl.entity.process.Process.setVaAttribute(exactcost.abm.bl.entity.process.ValueAnalysisAttr)Curr Values: []; currValue: null
13:57:13,000 DEBUG SQL:393 - select process0_.id as id6_2_, process0_.ver_id as ver2_6_2_, process0_.distinction as distinc12_7_2_, process0_.intencity as intencity7_2_, process0_.is_nva as is2_7_2_, process0_.resolution as resolution7_2_, process0_.base_volume as base4_7_2_, process0_.diff_measure as diff5_7_2_, process0_.orgid as orgid7_2_, process0_.orgunit as orgunit7_2_, process0_.trigger_action as trigger7_7_2_, process0_.version_number as version8_7_2_, process0_.name as name7_2_, process0_.description as descrip10_7_2_, process0_.status as status7_2_, nodes1_.process as process4_, nodes1_.id as id4_, nodes1_.id as id4_0_, nodes1_.process as process4_0_, nodes1_.left_pos as left3_4_0_, nodes1_.top_pos as top4_4_0_, nodes1_.name as name4_0_, nodes1_.ver_id as ver6_4_0_, nodes1_.cost as cost4_0_, nodes1_.duration as duration4_0_, nodes1_.percent_of_process as percent9_4_0_, nodes1_.distinction as distinc15_4_0_, nodes1_.intencity as intencity4_0_, nodes1_.is_nva as is11_4_0_, nodes1_.resolution as resolution4_0_, nodes1_.in_process_volume as in13_4_0_, nodes1_.origin_activity as origin16_4_0_, nodes1_.origin_process as origin17_4_0_, nodes1_.type as type4_0_, inlinks2_.to_node as to4_5_, inlinks2_.id as id5_, inlinks2_.id as id5_1_, inlinks2_.from_node as from3_5_1_, inlinks2_.to_node as to4_5_1_, inlinks2_.process as process5_1_, inlinks2_.label as label5_1_ from abm_process process0_ left outer join abm_process_node nodes1_ on process0_.id=nodes1_.process left outer join abm_process_link inlinks2_ on nodes1_.id=inlinks2_.to_node where process0_.id=?
Hibernate: select process0_.id as id6_2_, process0_.ver_id as ver2_6_2_, process0_.distinction as distinc12_7_2_, process0_.intencity as intencity7_2_, process0_.is_nva as is2_7_2_, process0_.resolution as resolution7_2_, process0_.base_volume as base4_7_2_, process0_.diff_measure as diff5_7_2_, process0_.orgid as orgid7_2_, process0_.orgunit as orgunit7_2_, process0_.trigger_action as trigger7_7_2_, process0_.version_number as version8_7_2_, process0_.name as name7_2_, process0_.description as descrip10_7_2_, process0_.status as status7_2_, nodes1_.process as process4_, nodes1_.id as id4_, nodes1_.id as id4_0_, nodes1_.process as process4_0_, nodes1_.left_pos as left3_4_0_, nodes1_.top_pos as top4_4_0_, nodes1_.name as name4_0_, nodes1_.ver_id as ver6_4_0_, nodes1_.cost as cost4_0_, nodes1_.duration as duration4_0_, nodes1_.percent_of_process as percent9_4_0_, nodes1_.distinction as distinc15_4_0_, nodes1_.intencity as intencity4_0_, nodes1_.is_nva as is11_4_0_, nodes1_.resolution as resolution4_0_, nodes1_.in_process_volume as in13_4_0_, nodes1_.origin_activity as origin16_4_0_, nodes1_.origin_process as origin17_4_0_, nodes1_.type as type4_0_, inlinks2_.to_node as to4_5_, inlinks2_.id as id5_, inlinks2_.id as id5_1_, inlinks2_.from_node as from3_5_1_, inlinks2_.to_node as to4_5_1_, inlinks2_.process as process5_1_, inlinks2_.label as label5_1_ from abm_process process0_ left outer join abm_process_node nodes1_ on process0_.id=nodes1_.process left outer join abm_process_link inlinks2_ on nodes1_.id=inlinks2_.to_node where process0_.id=?
13:57:13,500 DEBUG SQL:393 - select anattribut0_.process as process1_, anattribut0_.attribute as attribute1_, analysisat1_.id as id1_0_, analysisat1_.orgid as orgid1_0_, analysisat1_.name as name1_0_, analysisat1_.ver_id as ver4_1_0_, analysisat1_.description as descript5_1_0_ from abm_process_attribute anattribut0_ left outer join abm_attribute analysisat1_ on anattribut0_.attribute=analysisat1_.id where anattribut0_.process=?
Hibernate: select anattribut0_.process as process1_, anattribut0_.attribute as attribute1_, analysisat1_.id as id1_0_, analysisat1_.orgid as orgid1_0_, analysisat1_.name as name1_0_, analysisat1_.ver_id as ver4_1_0_, analysisat1_.description as descript5_1_0_ from abm_process_attribute anattribut0_ left outer join abm_attribute analysisat1_ on anattribut0_.attribute=analysisat1_.id where anattribut0_.process=?
13:57:13,546 DEBUG SQL:393 - select sq_activity.nextval from dual
Hibernate: select sq_activity.nextval from dual
13:57:13,609 DEBUG SQL:393 - select outlinks0_.from_node as from3_5_, outlinks0_.id as id5_, outlinks0_.id as id5_4_, outlinks0_.from_node as from3_5_4_, outlinks0_.to_node as to4_5_4_, outlinks0_.process as process5_4_, outlinks0_.label as label5_4_, abstractno1_.id as id4_0_, abstractno1_.process as process4_0_, abstractno1_.left_pos as left3_4_0_, abstractno1_.top_pos as top4_4_0_, abstractno1_.name as name4_0_, abstractno1_.ver_id as ver6_4_0_, abstractno1_.cost as cost4_0_, abstractno1_.duration as duration4_0_, abstractno1_.percent_of_process as percent9_4_0_, abstractno1_.distinction as distinc15_4_0_, abstractno1_.intencity as intencity4_0_, abstractno1_.is_nva as is11_4_0_, abstractno1_.resolution as resolution4_0_, abstractno1_.in_process_volume as in13_4_0_, abstractno1_.origin_activity as origin16_4_0_, abstractno1_.origin_process as origin17_4_0_, abstractno1_.type as type4_0_, process2_.id as id6_1_, process2_.ver_id as ver2_6_1_, process2_.distinction as distinc12_7_1_, process2_.intencity as intencity7_1_, process2_.is_nva as is2_7_1_, process2_.resolution as resolution7_1_, process2_.base_volume as base4_7_1_, process2_.diff_measure as diff5_7_1_, process2_.orgid as orgid7_1_, process2_.orgunit as orgunit7_1_, process2_.trigger_action as trigger7_7_1_, process2_.version_number as version8_7_1_, process2_.name as name7_1_, process2_.description as descrip10_7_1_, process2_.status as status7_1_, abstractpr3_.id as id6_2_, abstractpr3_.ver_id as ver2_6_2_, abstractpr3_.distinction as distinc12_7_2_, abstractpr3_.intencity as intencity7_2_, abstractpr3_.is_nva as is2_7_2_, abstractpr3_.resolution as resolution7_2_, abstractpr3_.base_volume as base4_7_2_, abstractpr3_.diff_measure as diff5_7_2_, abstractpr3_.orgid as orgid7_2_, abstractpr3_.orgunit as orgunit7_2_, abstractpr3_.trigger_action as trigger7_7_2_, abstractpr3_.version_number as version8_7_2_, abstractpr3_.name as name7_2_, abstractpr3_.description as descrip10_7_2_, abstractpr3_.status as status7_2_, abstractpr3_.parent as parent8_2_, abstractpr3_.clazz_ as clazz_2_, subactivit4_.id as id4_3_, subactivit4_.process as process4_3_, subactivit4_.left_pos as left3_4_3_, subactivit4_.top_pos as top4_4_3_, subactivit4_.name as name4_3_, subactivit4_.ver_id as ver6_4_3_, subactivit4_.cost as cost4_3_, subactivit4_.duration as duration4_3_, subactivit4_.percent_of_process as percent9_4_3_, subactivit4_.distinction as distinc15_4_3_, subactivit4_.intencity as intencity4_3_, subactivit4_.is_nva as is11_4_3_, subactivit4_.resolution as resolution4_3_, subactivit4_.in_process_volume as in13_4_3_, subactivit4_.origin_activity as origin16_4_3_, subactivit4_.type as type4_3_ from abm_process_link outlinks0_ inner join abm_process_node abstractno1_ on outlinks0_.to_node=abstractno1_.id left outer join abm_process process2_ on abstractno1_.origin_process=process2_.id inner join ( select base_volume, orgid, trigger_action, resolution, status, id, orgunit, diff_measure, distinction, intencity, description, version_number, ver_id, name, null as parent, is_nva, 1 as clazz_ from abm_process union all select null as base_volume, null as orgid, null as trigger_action, null as resolution, null as status, id, null as orgunit, null as diff_measure, null as distinction, null as intencity, null as description, null as version_number, ver_id, null as name, parent, null as is_nva, 2 as clazz_ from abm_subprocess ) abstractpr3_ on outlinks0_.process=abstractpr3_.id left outer join abm_process_node subactivit4_ on abstractpr3_.parent=subactivit4_.id where outlinks0_.from_node in (?, ?)
Hibernate: select outlinks0_.from_node as from3_5_, outlinks0_.id as id5_, outlinks0_.id as id5_4_, outlinks0_.from_node as from3_5_4_, outlinks0_.to_node as to4_5_4_, outlinks0_.process as process5_4_, outlinks0_.label as label5_4_, abstractno1_.id as id4_0_, abstractno1_.process as process4_0_, abstractno1_.left_pos as left3_4_0_, abstractno1_.top_pos as top4_4_0_, abstractno1_.name as name4_0_, abstractno1_.ver_id as ver6_4_0_, abstractno1_.cost as cost4_0_, abstractno1_.duration as duration4_0_, abstractno1_.percent_of_process as percent9_4_0_, abstractno1_.distinction as distinc15_4_0_, abstractno1_.intencity as intencity4_0_, abstractno1_.is_nva as is11_4_0_, abstractno1_.resolution as resolution4_0_, abstractno1_.in_process_volume as in13_4_0_, abstractno1_.origin_activity as origin16_4_0_, abstractno1_.origin_process as origin17_4_0_, abstractno1_.type as type4_0_, process2_.id as id6_1_, process2_.ver_id as ver2_6_1_, process2_.distinction as distinc12_7_1_, process2_.intencity as intencity7_1_, process2_.is_nva as is2_7_1_, process2_.resolution as resolution7_1_, process2_.base_volume as base4_7_1_, process2_.diff_measure as diff5_7_1_, process2_.orgid as orgid7_1_, process2_.orgunit as orgunit7_1_, process2_.trigger_action as trigger7_7_1_, process2_.version_number as version8_7_1_, process2_.name as name7_1_, process2_.description as descrip10_7_1_, process2_.status as status7_1_, abstractpr3_.id as id6_2_, abstractpr3_.ver_id as ver2_6_2_, abstractpr3_.distinction as distinc12_7_2_, abstractpr3_.intencity as intencity7_2_, abstractpr3_.is_nva as is2_7_2_, abstractpr3_.resolution as resolution7_2_, abstractpr3_.base_volume as base4_7_2_, abstractpr3_.diff_measure as diff5_7_2_, abstractpr3_.orgid as orgid7_2_, abstractpr3_.orgunit as orgunit7_2_, abstractpr3_.trigger_action as trigger7_7_2_, abstractpr3_.version_number as version8_7_2_, abstractpr3_.name as name7_2_, abstractpr3_.description as descrip10_7_2_, abstractpr3_.status as status7_2_, abstractpr3_.parent as parent8_2_, abstractpr3_.clazz_ as clazz_2_, subactivit4_.id as id4_3_, subactivit4_.process as process4_3_, subactivit4_.left_pos as left3_4_3_, subactivit4_.top_pos as top4_4_3_, subactivit4_.name as name4_3_, subactivit4_.ver_id as ver6_4_3_, subactivit4_.cost as cost4_3_, subactivit4_.duration as duration4_3_, subactivit4_.percent_of_process as percent9_4_3_, subactivit4_.distinction as distinc15_4_3_, subactivit4_.intencity as intencity4_3_, subactivit4_.is_nva as is11_4_3_, subactivit4_.resolution as resolution4_3_, subactivit4_.in_process_volume as in13_4_3_, subactivit4_.origin_activity as origin16_4_3_, subactivit4_.type as type4_3_ from abm_process_link outlinks0_ inner join abm_process_node abstractno1_ on outlinks0_.to_node=abstractno1_.id left outer join abm_process process2_ on abstractno1_.origin_process=process2_.id inner join ( select base_volume, orgid, trigger_action, resolution, status, id, orgunit, diff_measure, distinction, intencity, description, version_number, ver_id, name, null as parent, is_nva, 1 as clazz_ from abm_process union all select null as base_volume, null as orgid, null as trigger_action, null as resolution, null as status, id, null as orgunit, null as diff_measure, null as distinction, null as intencity, null as description, null as version_number, ver_id, null as name, parent, null as is_nva, 2 as clazz_ from abm_subprocess ) abstractpr3_ on outlinks0_.process=abstractpr3_.id left outer join abm_process_node subactivit4_ on abstractpr3_.parent=subactivit4_.id where outlinks0_.from_node in (?, ?)
13:57:13,671 DEBUG SQL:393 - select links0_.process as process4_, links0_.id as id4_, links0_.id as id5_3_, links0_.from_node as from3_5_3_, links0_.to_node as to4_5_3_, links0_.process as process5_3_, links0_.label as label5_3_, abstractno1_.id as id4_0_, abstractno1_.process as process4_0_, abstractno1_.left_pos as left3_4_0_, abstractno1_.top_pos as top4_4_0_, abstractno1_.name as name4_0_, abstractno1_.ver_id as ver6_4_0_, abstractno1_.cost as cost4_0_, abstractno1_.duration as duration4_0_, abstractno1_.percent_of_process as percent9_4_0_, abstractno1_.distinction as distinc15_4_0_, abstractno1_.intencity as intencity4_0_, abstractno1_.is_nva as is11_4_0_, abstractno1_.resolution as resolution4_0_, abstractno1_.in_process_volume as in13_4_0_, abstractno1_.origin_activity as origin16_4_0_, abstractno1_.origin_process as origin17_4_0_, abstractno1_.type as type4_0_, process2_.id as id6_1_, process2_.ver_id as ver2_6_1_, process2_.distinction as distinc12_7_1_, process2_.intencity as intencity7_1_, process2_.is_nva as is2_7_1_, process2_.resolution as resolution7_1_, process2_.base_volume as base4_7_1_, process2_.diff_measure as diff5_7_1_, process2_.orgid as orgid7_1_, process2_.orgunit as orgunit7_1_, process2_.trigger_action as trigger7_7_1_, process2_.version_number as version8_7_1_, process2_.name as name7_1_, process2_.description as descrip10_7_1_, process2_.status as status7_1_, abstractno3_.id as id4_2_, abstractno3_.process as process4_2_, abstractno3_.left_pos as left3_4_2_, abstractno3_.top_pos as top4_4_2_, abstractno3_.name as name4_2_, abstractno3_.ver_id as ver6_4_2_, abstractno3_.cost as cost4_2_, abstractno3_.duration as duration4_2_, abstractno3_.percent_of_process as percent9_4_2_, abstractno3_.distinction as distinc15_4_2_, abstractno3_.intencity as intencity4_2_, abstractno3_.is_nva as is11_4_2_, abstractno3_.resolution as resolution4_2_, abstractno3_.in_process_volume as in13_4_2_, abstractno3_.origin_activity as origin16_4_2_, abstractno3_.origin_process as origin17_4_2_, abstractno3_.type as type4_2_ from abm_process_link links0_ inner join abm_process_node abstractno1_ on links0_.from_node=abstractno1_.id left outer join abm_process process2_ on abstractno1_.origin_process=process2_.id inner join abm_process_node abstractno3_ on links0_.to_node=abstractno3_.id where links0_.process=?
Hibernate: select links0_.process as process4_, links0_.id as id4_, links0_.id as id5_3_, links0_.from_node as from3_5_3_, links0_.to_node as to4_5_3_, links0_.process as process5_3_, links0_.label as label5_3_, abstractno1_.id as id4_0_, abstractno1_.process as process4_0_, abstractno1_.left_pos as left3_4_0_, abstractno1_.top_pos as top4_4_0_, abstractno1_.name as name4_0_, abstractno1_.ver_id as ver6_4_0_, abstractno1_.cost as cost4_0_, abstractno1_.duration as duration4_0_, abstractno1_.percent_of_process as percent9_4_0_, abstractno1_.distinction as distinc15_4_0_, abstractno1_.intencity as intencity4_0_, abstractno1_.is_nva as is11_4_0_, abstractno1_.resolution as resolution4_0_, abstractno1_.in_process_volume as in13_4_0_, abstractno1_.origin_activity as origin16_4_0_, abstractno1_.origin_process as origin17_4_0_, abstractno1_.type as type4_0_, process2_.id as id6_1_, process2_.ver_id as ver2_6_1_, process2_.distinction as distinc12_7_1_, process2_.intencity as intencity7_1_, process2_.is_nva as is2_7_1_, process2_.resolution as resolution7_1_, process2_.base_volume as base4_7_1_, process2_.diff_measure as diff5_7_1_, process2_.orgid as orgid7_1_, process2_.orgunit as orgunit7_1_, process2_.trigger_action as trigger7_7_1_, process2_.version_number as version8_7_1_, process2_.name as name7_1_, process2_.description as descrip10_7_1_, process2_.status as status7_1_, abstractno3_.id as id4_2_, abstractno3_.process as process4_2_, abstractno3_.left_pos as left3_4_2_, abstractno3_.top_pos as top4_4_2_, abstractno3_.name as name4_2_, abstractno3_.ver_id as ver6_4_2_, abstractno3_.cost as cost4_2_, abstractno3_.duration as duration4_2_, abstractno3_.percent_of_process as percent9_4_2_, abstractno3_.distinction as distinc15_4_2_, abstractno3_.intencity as intencity4_2_, abstractno3_.is_nva as is11_4_2_, abstractno3_.resolution as resolution4_2_, abstractno3_.in_process_volume as in13_4_2_, abstractno3_.origin_activity as origin16_4_2_, abstractno3_.origin_process as origin17_4_2_, abstractno3_.type as type4_2_ from abm_process_link links0_ inner join abm_process_node abstractno1_ on links0_.from_node=abstractno1_.id left outer join abm_process process2_ on abstractno1_.origin_process=process2_.id inner join abm_process_node abstractno3_ on links0_.to_node=abstractno3_.id where links0_.process=?
new pid: 97950 name: er
13:57:13,734 DEBUG SQL:393 - insert into abm_process_link (from_node, to_node, label, process, id) values (?, ?, ?, ?, ?)
Hibernate: insert into abm_process_link (from_node, to_node, label, process, id) values (?, ?, ?, ?, ?)
13:57:13,796 WARN JDBCExceptionReporter:71 - SQL Error: 1, SQLState: 23000
13:57:13,796 ERROR JDBCExceptionReporter:72 - ORA-00001: unique constraint (EX_ABM.ABM_PROCESS_LINK_ENDS_UK) violated

13:57:13,796 WARN JDBCExceptionReporter:71 - SQL Error: 1, SQLState: 23000
13:57:13,796 ERROR JDBCExceptionReporter:72 - ORA-00001: unique constraint (EX_ABM.ABM_PROCESS_LINK_ENDS_UK) violated

13:57:13,812 ERROR AbstractFlushingEventListener:300 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Code:


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 17, 2006 7:26 am 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Fast guess,

delete first and use session.flush to inforce the writing to the db than set the new entity.

Best Regards Sebastian

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 17, 2006 8:57 am 
Newbie

Joined: Sat May 06, 2006 6:31 am
Posts: 9
Quote:
Posted: Wed May 17, 2006 11:26 am Post subject:

--------------------------------------------------------------------------------

Fast guess,

delete first and use session.flush to inforce the writing to the db than set the new entity.

Best Regards Sebastian


Thanks for answer.
I tried it before, it is working and it is good as workaround. For this solution I need to track inserts/deletes of client side, and I try to avoid this headache.
I just wonder if this is legal Hibernate behavior?

Igor


Top
 Profile  
 
 Post subject: Insert before Delete
PostPosted: Wed May 17, 2006 11:53 am 
Newbie

Joined: Wed May 03, 2006 6:25 am
Posts: 4
This is the same as the issue reported before in:-

http://forum.hibernate.org/viewtopic.php?t=958514

but yet there is still no answer.

We are still looking into solutions for the issues of a strictly layered application when using Hibernate.

JGL...


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.