一对多级联删除
[code=Java] 
 Commontop.xml 
           <set   name= "pouringgirder "   lazy= "false "   cascade= "all ">  
                    <key>  
                         	    <column   name= "ct_id "   not-null= "false ">  </column>  
                    </key>  
                    <one-to-many   class= "com.zjrd.entity.Pouringgirder "/>  
           </set>    
 Pouringgirder.xml 
           <many-to-one   name= "commontop "   class= "com.zjrd.entity.Commontop "      fetch= "select "   not-found= "ignore "   insert= "false "   update= "false ">  
                       <column   name= "ct_id "   not-null= "true "   >  </column>  
           </many-to-one>    
 delete.action 
 	public   String   deleteCommontop(){ 
 		int   id=Integer.parseInt(request.getParameter( "id ")); 
 		this.cmtBiz.deleteCommontop(id); 
 		return    "delete "; 
 	} 
 [/code] 
 关联id保存在多的一方Pouringgirder表中,并且是非空。然后运行,直接报错: 
 严重:   Servlet.service()   for   servlet   default   threw   exception  
com.microsoft.sqlserver.jdbc.SQLServerException:   不能将值   NULL   插入列    'ct_id ',表    'Bridge.dbo.pouringgirder ';列不允许有空值。UPDATE   失败。 
 	at   com.microsoft.sqlserver.jdbc.
SQLServerException.makeFromDatabaseError(SQL
ServerException.java:196) 
 	at   com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1454) 
                            ... 
 由报错信息,我觉得是删除操作并不是在删除一表的时候直接删除关联多表,而是把多表的关联id改为null了,关联多表还是存在的,然后我想要的是在删除一表的时候,直接删除与之相关联的多表。 
 上网搜了一遍后,只找到了一个答案,在一表配置文件的 <set> 内加入inverse= "true ",交出主控权,再次运行之后,功能实现了,但是再次报错: 
 严重:   Servlet.service()   for   servlet   default   threw   exception  
java.lang.NumberFormatException:   null 
 	at   java.lang.Integer.parseInt(Integer.java:415) 
 	at   java.lang.Integer.parseInt(Integer.java:497) 
 	at   com.zjrd.action.CommontopAction.findCommontopById(CommontopAction.java:58) 
 	at   sun.reflect.NativeMethodAccessorImpl.invoke0(Native   Method) 
                            ... 
 对此,十分费解,思路完全串不起来,求高手解惑,或者指点下正确的功能实现方法。 
 想要的结果:级联删除,删除一,直接关联删除多!
------解决方案--------------------
第一个异常:
删除Commontop时,Commontop对应的Pouringgirder所关联的Commontop就不存在了。
而Commontop要维护关系,所以就修改外键为空。而外键被设置为not nul.
我的异常网推荐解决方案:Servlet.service() for servlet default threw exception,http://www.myexception.cn/eclipse/181756.html