From: Gavin K. (JIRA) <no...@at...> - 2005-10-31 14:45:19
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1113?page=all ] Gavin King resolved HHH-1113: ----------------------------- Resolution: Rejected This is a documented limitation and most certainly not blocking anything! > idbag composite-element cascade-on-save gives "could not bind value POST_INSERT_INDICATOR to" collection-id > ----------------------------------------------------------------------------------------------------------- > > Key: HHH-1113 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1113 > Project: Hibernate3 > Type: Bug > Components: core > Versions: 3.0.5, 3.1 rc 1, 3.1 rc2 > Environment: MySQL any, MSSQL any > Reporter: Tea Yu > Priority: Blocker > > > - Parent contains a List of composite-element childs (idbag) > - the collection is cascade on all-delete-orphan > - when saving a parent, child couldn't be persisted due to "could not bind value 'POST_INSERT_INDICATOR' to parameter", which is supposed to be generated in DB > ------------------ > mapping > ------------------ > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE hibernate-mapping PUBLIC > "-//Hibernate/Hibernate Mapping DTD 3.0//EN" > "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> > <hibernate-mapping> > <class name="Parent" table="parent"> > <id name="id" column="parent_id" type="long" unsaved-value="0"> > <generator class="native" /> > </id> > <idbag name="childs" table="childs" cascade="all-delete-orphan"> > <collection-id column="child_id" type="long"> > <generator class="identity"> > <param name="unsaved-value">0</param> > </generator> > </collection-id> > <key column="_parent_id" /> > <composite-element class="Child"> > <property name="name" column="name" type="string" /> > </composite-element> > </idbag> > </class> > </hibernate-mapping> > ------------------ > stack trace > ------------------ > 31/10/2005 17:16:20 - DEBUG [main] (AbstractBatcher.java:344) - insert into childs (_parent_id, child_id, name) values (?, ?, ?) > 31/10/2005 17:16:20 - DEBUG [main] (AbstractBatcher.java:413) - preparing statement > 31/10/2005 17:16:20 - DEBUG [main] (NullableType.java:79) - binding '14' to parameter: 1 > 31/10/2005 17:16:20 - DEBUG [main] (NullableType.java:79) - binding 'POST_INSERT_INDICATOR' to parameter: 2 > 31/10/2005 17:16:20 - INFO [main] (NullableType.java:89) - could not bind value 'POST_INSERT_INDICATOR' to parameter: 2 > 31/10/2005 17:16:20 - DEBUG [main] (NullableType.java:79) - binding 'test' to parameter: 3 > 31/10/2005 17:16:20 - DEBUG [main] (BatchingBatcher.java:28) - Adding to batch > 31/10/2005 17:16:20 - DEBUG [main] (AbstractCollectionPersister.java:1045) - done inserting collection: 1 rows inserted > 31/10/2005 17:16:20 - DEBUG [main] (BatchingBatcher.java:55) - Executing batch size: 1 > 31/10/2005 17:16:20 - DEBUG [main] (AbstractBatcher.java:317) - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) > 31/10/2005 17:16:20 - DEBUG [main] (AbstractBatcher.java:459) - closing statement > 31/10/2005 17:16:20 - DEBUG [main] (JDBCExceptionReporter.java:63) - Could not execute JDBC batch update [insert into childs (_parent_id, child_id, name) values (?, ?, ?)] > java.sql.BatchUpdateException: Statement parameter 2 not set. > at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:828) > at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58) > at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:193) > at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:230) > at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:144) > at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:296) > at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) > at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:905) > at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:345) > at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) > at test.Test.testInsert(Test.java:27) > at test.Test.main(Test.java:15) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |