This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Object Relational Mapping and the fly likes Problem when delete 1 record in ROOM table Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Databases » Object Relational Mapping
Bookmark "Problem when delete 1 record in ROOM table" Watch "Problem when delete 1 record in ROOM table" New topic
Author

Problem when delete 1 record in ROOM table

Haifeng Jiang
Ranch Hand

Joined: Dec 14, 2008
Posts: 42
When I run my Hibernate application to delete one record in ROOM table, I got error. I suppose to delete 1 record in ROOM table then Hibernate will delete the related record in USER table. But actually it dose not work. Below are my codes. Hope anybody can give one hand. Thanks.
Test.java


User.hbm.xml:


Room.hbm.xml


Room.java:



User.java:


I got this problem when I runing Test.java. Does anyone know what's the problem? Many thanks!
20:25:27,484 DEBUG org.hibernate.jdbc.AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
20:25:27,484 DEBUG org.hibernate.util.JDBCExceptionReporter:92 - could not delete: [model.Room#2] [delete from JIANGHAIFENG.ROOM where ID=?]
com.ibm.db2.jcc.am.fo: DB2 SQL Error: SQLCODE=-532, SQLSTATE=23504, SQLERRMC=JIANGHAIFENG.USER.CC1318929856625, DRIVER=3.57.82
at com.ibm.db2.jcc.am.bd.a(bd.java:672)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.km.b(km.java:2164)
at com.ibm.db2.jcc.am.km.c(km.java:2147)
at com.ibm.db2.jcc.t4.db.k(db.java:354)
at com.ibm.db2.jcc.t4.db.a(db.java:60)
at com.ibm.db2.jcc.t4.t.a(t.java:50)
at com.ibm.db2.jcc.t4.tb.b(tb.java:218)
at com.ibm.db2.jcc.am.lm.ec(lm.java:2692)
at com.ibm.db2.jcc.am.lm.b(lm.java:3552)
at com.ibm.db2.jcc.am.lm.Wb(lm.java:690)
at com.ibm.db2.jcc.am.lm.executeUpdate(lm.java:673)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2538)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2715)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at test.Test.main(Test.java:145)
20:25:27,484 WARN org.hibernate.util.JDBCExceptionReporter:100 - SQL Error: -532, SQLState: 23504
20:25:27,484 ERROR org.hibernate.util.JDBCExceptionReporter:101 - DB2 SQL Error: SQLCODE=-532, SQLSTATE=23504, SQLERRMC=JIANGHAIFENG.USER.CC1318929856625, DRIVER=3.57.82
20:25:27,484 ERROR org.hibernate.event.def.AbstractFlushingEventListener:324 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not delete: [model.Room#2]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2559)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2715)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at test.Test.main(Test.java:145)
Caused by: com.ibm.db2.jcc.am.fo: DB2 SQL Error: SQLCODE=-532, SQLSTATE=23504, SQLERRMC=JIANGHAIFENG.USER.CC1318929856625, DRIVER=3.57.82
at com.ibm.db2.jcc.am.bd.a(bd.java:672)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.km.b(km.java:2164)
at com.ibm.db2.jcc.am.km.c(km.java:2147)
at com.ibm.db2.jcc.t4.db.k(db.java:354)
at com.ibm.db2.jcc.t4.db.a(db.java:60)
at com.ibm.db2.jcc.t4.t.a(t.java:50)
at com.ibm.db2.jcc.t4.tb.b(tb.java:218)
at com.ibm.db2.jcc.am.lm.ec(lm.java:2692)
at com.ibm.db2.jcc.am.lm.b(lm.java:3552)
at com.ibm.db2.jcc.am.lm.Wb(lm.java:690)
at com.ibm.db2.jcc.am.lm.executeUpdate(lm.java:673)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2538)
... 11 more
Exception in thread "main" org.hibernate.exception.ConstraintViolationException: could not delete: [model.Room#2]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2559)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2715)
at org.hibernate.action.EntityDeleteAction.execute(EntityDeleteAction.java:97)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:366)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
at test.Test.main(Test.java:145)
Caused by: com.ibm.db2.jcc.am.fo: DB2 SQL Error: SQLCODE=-532, SQLSTATE=23504, SQLERRMC=JIANGHAIFENG.USER.CC1318929856625, DRIVER=3.57.82
at com.ibm.db2.jcc.am.bd.a(bd.java:672)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:127)
at com.ibm.db2.jcc.am.km.b(km.java:2164)
at com.ibm.db2.jcc.am.km.c(km.java:2147)
at com.ibm.db2.jcc.t4.db.k(db.java:354)
at com.ibm.db2.jcc.t4.db.a(db.java:60)
at com.ibm.db2.jcc.t4.t.a(t.java:50)
at com.ibm.db2.jcc.t4.tb.b(tb.java:218)
at com.ibm.db2.jcc.am.lm.ec(lm.java:2692)
at com.ibm.db2.jcc.am.lm.b(lm.java:3552)
at com.ibm.db2.jcc.am.lm.Wb(lm.java:690)
at com.ibm.db2.jcc.am.lm.executeUpdate(lm.java:673)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46)
at org.hibernate.persister.entity.AbstractEntityPersister.delete(AbstractEntityPersister.java:2538)
... 11 more

Thinking a lot. Gaining a lot.
Haifeng Jiang
Ranch Hand

Joined: Dec 14, 2008
Posts: 42
I found if I get session in this way, the code works for me.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Problem when delete 1 record in ROOM table
 
Similar Threads
Could not synchronize database
insert data into 2 tables using HQL
insert/update value of the FOREIGN KEY is not equal to any value of parent key of parent table:DB2
Handling Clob in Hibernate 3 & DB2 8.1
Eclispe + Hibernate + DB2 version 9