Hibernate级联删除奇怪问题
<?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">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="model.ArticleType" table="articletype" catalog="javasubject" >
<id name="arttId" type="long">
<column name="artt_id" />
<generator class="native" />
</id>
<many-to-one name="parent" class="model.ArticleType" fetch="select" outer-join="true">
<column name="artt_up" /> <!-- 指向当前类型的父类型 -->
</many-to-one>
<property name="arttName" type="string">
<column name="artt_name" length="20" />
</property>
<property name="arttType" type="string">
<column name="artt_type" length="20" />
</property>
<set name="articles" inverse="true" cascade="all" >
<key>
<column name="artt_id" />
</key>
<one-to-many class="model.Article" /> <!-- 与article一对多关联 -->
</set>
<set name="children" inverse="true" cascade="all" lazy="false">
<key>
<column name="artt_up" />
</key> <!-- 指向当前类型的子类型 -->
<one-to-many class="model.ArticleType" />
</set>
</class>
</hibernate-mapping>
以上是我的ArticleType(文章分类)的hbm.xml文件,ArticleType与Article是一对多关联
我以前刚刚写好DAO层的时候,做过测试的,
删除ArticleType,是可以级联删除Article(文章),
但是,现在,整合了struts1.2以及spring2.0以后,既然删掉ArticleType时,如果有所下属的
Article.就会出现以下的提示错误:
Could not execute JDBC batch update; SQL [delete from javasubject.article where art_id=?]; Cannot delete or update a parent row: a foreign key constraint fails (`javasubject/favorite`, CONSTRAINT `FK_favorite2` FOREIGN KEY (`art_id`) REFERENCES `article` (`art_id`)); nested exception is java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`javasubject/favorite`, CONSTRAINT `FK_favorite2` FOREIGN KEY (`art_id`) REFERENCES `article` (`art_id`))
我的Article表与Review表,也是一对多关联,
删除Article时,却可以级联删除Review,以下是hbm.xml:
<?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">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="model.Article" table="article" catalog="javasubject">
<id name="artId" type="long">
<column name="art_id" />
<generator class="native" />
</id>
<many-to-one name="articletype" class="model.ArticleType" fetch="select" outer-join="true" >
<column name="artt_id" />
</many-to-one>
<property name="artTitle" type="string">
<column name="art_title" length="50" />
</property>
<property name="artAuthor" type="string">
<column name="art_author" length="20" />
</property>
<property name="artText" type="string">
<column name="art_text" length="65535" />
</property>
<property name="artSource" type="string">
<column name="art_source" length="50" />
</property>
<property name="artType" type="string">
<column name="art_type" length="20" />
</property>
<property name="artTime" type="timestamp">
<column name="art_time" length="0" not-null="true" />
</property>
<set name="reviews" inverse="true" cascade="all">
<key>
<column name="art_id" />
</key>
<one-to-many class="model.Review" />
</set>
<set name="keyWords" inverse="true" cascade="all">
<key>
<column name="art_id" />
</key>
<one-to-many class="model.KeyWord" />
</set>
<set name="users" inverse="true" table="favorite">
<key>
<column name="art_id" not-null="true" />
</key>
<many-to-many class="model.User" column="user_id" outer-join="auto"/>
</set>
</class>
</hibernate-mapping>
请高手帮助看看,我真的不知道出在哪里,,很奇怪。。