i had a Category pojo 

public class Category {
protected List<Category> childCategories;

/**
         * @return the childCategories
         * @hibernate.list name="child_categories"
         * @hibernate.key column="parent_id"
         * @hibernate.one-to-many class="com.xxx.apps.xxx.model.Category"
cascade="all-delete-orphan"
         * @hibernate.list-index column="display_order"
         */
        public List<Category> getChildCategories() {
                return this.childCategories;
        }
}

when i delete the parent all the childs should also be deleted.
childs with current id as parent_id  shold be deleted, 
but the update query is being generated by the hibernate instead of delete
query

the query generated by hibernate  is as follows

Hibernate: update hc_category set parent_id=null, display_order=null where
parent_id=?

so it is giving the following error

ERROR http-8080-2 org.hibernate.util.JDBCExceptionReporter - ERROR: null
value in column "parent_id" violates not-null constraint
ERROR http-8080-2 org.hibernate.event.def.AbstractFlushingEventListener -
Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: could not delete
collection: [com.hvca.apps.catalog.model.Category.childCategories#16]
        at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
        at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at
org.hibernate.persister.collection.AbstractCollectionPersister.remove(AbstractCollectionPersister.java:1071)
        at
org.hibernate.action.CollectionRemoveAction.execute(CollectionRemoveAction.java:28)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
        at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
        at
org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
        at
org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:558)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:540)
        at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:510)
        at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:310)
        at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:209)
        at $Proxy22.removeCategory(Unknown Source)
        at
com.hvca.apps.catalog.service.dwr.impl.DWRCategoryManagerImpl.removeCategory(DWRCategoryManagerImpl.java:68)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:239)
        at
uk.ltd.getahead.dwr.impl.DefaultExecProcessor.handle(DefaultExecProcessor.java:48)
        at
uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:81)
        at
uk.ltd.getahead.dwr.AbstractDWRServlet.doPost(AbstractDWRServlet.java:162)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118)
        at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:375)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at
org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)


please reply to this asp.
-- 
View this message in context: 
http://www.nabble.com/problem-deleting-the-children-when-the-parent-is-removed-tp17402647s2369p17402647.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to