You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Populate the domain objects and attempt to delete the parent domain object
Delete the object (force a flush to see the error immediately)
Expected Behaviour
The parent object is deleted, and deletions cascade onto the child objects
Actual Behaviour
The underlying database complains that a null value is being set for a non-nullable column. e.g.,:
org.h2.jdbc.JdbcSQLException: NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]
Stacktrace:
2018-02-20 16:10:06.995 ERROR --- [ Test worker] o.h.engine.jdbc.spi.SqlExceptionHelper : NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]
cascade.delete.test.OrganizationSpec > organization deletions cascade FAILED
org.springframework.dao.DataIntegrityViolationException at OrganizationSpec.groovy:29
Caused by: org.h2.jdbc.JdbcSQLException at OrganizationSpec.groovy:29
Hibernate operation: could not execute statement; SQL [n/a]; NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]; nested exception is org.h2.jdbc.JdbcSQLException: NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: could not execute statement; SQL [n/a]; NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]; nested exception is org.h2.jdbc.JdbcSQLException: NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:243)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.grails.orm.hibernate.GrailsHibernateTemplate.convertJdbcAccessException(GrailsHibernateTemplate.java:711)
at org.grails.orm.hibernate.GrailsHibernateTemplate.convertHibernateAccessException(GrailsHibernateTemplate.java:699)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:290)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:230)
at org.grails.orm.hibernate.GrailsHibernateTemplate.execute(GrailsHibernateTemplate.java:116)
at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.delete(AbstractHibernateGormInstanceApi.groovy:193)
at org.grails.datastore.gorm.GormEntity$Trait$Helper.delete(GormEntity.groovy:193)
at cascade.delete.test.OrganizationSpec.$tt__$spock_feature_0_0(OrganizationSpec.groovy:29)
at cascade.delete.test.OrganizationSpec.organization deletions cascade_closure1(OrganizationSpec.groovy)
at groovy.lang.Closure.call(Closure.java:414)
at groovy.lang.Closure.call(Closure.java:430)
at grails.transaction.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:70)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
at grails.transaction.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:67)
at cascade.delete.test.OrganizationSpec.organization deletions cascade(OrganizationSpec.groovy)
Caused by: org.h2.jdbc.JdbcSQLException: NULL not allowed for column "SELECTED_CHANNEL_ID"; SQL statement:
update person set version=?, name=?, organization_id=?, selected_channel_id=? where id=? and version=? [23502-194]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.table.Column.validateConvertUpdateSequence(Column.java:311)
at org.h2.table.Table.validateConvertUpdateSequence(Table.java:793)
at org.h2.command.dml.Update.update(Update.java:125)
at org.h2.command.CommandContainer.update(CommandContainer.java:101)
at org.h2.command.Command.executeUpdate(Command.java:258)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:160)
at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:146)
at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:138)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3132)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:3011)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:3391)
at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:145)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:582)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:456)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1295)
at org.grails.orm.hibernate.AbstractHibernateGormInstanceApi.delete_closure1(AbstractHibernateGormInstanceApi.groovy:196)
at groovy.lang.Closure.call(Closure.java:414)
at org.grails.orm.hibernate.GrailsHibernateTemplate.doExecute(GrailsHibernateTemplate.java:286)
... 12 more
Task List
Steps to Reproduce
Expected Behaviour
The parent object is deleted, and deletions cascade onto the child objects
Actual Behaviour
The underlying database complains that a
null
value is being set for a non-nullable column. e.g.,:Stacktrace:
Environment Information
openjdk version "1.8.0_162"
Example Application
Note
This issue does not appear in 6.1.8.RELEASE.
The text was updated successfully, but these errors were encountered: