spring+hibernate mysql 一对多+多对多, 级联删除问题。 真心求教。

请叫我带角凹凸曼 2010-11-26 03:08:39
一共是3张表,活动,报名单,我的活动
<!-------下面是活动表的HBM配置--------->
<!-- 活动报名单 -->
<set name="activityLists" table="t_activitylist" inverse="true" cascade="delete" >
<key column="fk_actid"></key>
<one-to-many class="com.fcwr.model.ActivityList" />
</set>

<!-- 我的活动 -->
<set name="myActivitys" table="t_activs" inverse="true" cascade="delete">
<key column="fk_actia"></key>
<many-to-many class="com.fcwr.model.MyActivity" column="fk_actim" />
</set>


<!-------下面是报名单的HBM配置---------->

<!-- 活动 -->
<many-to-one name="activity" column="fk_actid" class="com.fcwr.model.Activity" ></many-to-one>



<!-------------下面是我的活动 HBM配置----------------->
<!-- 活动 -->
<set name="activitys" table="t_activs" >
<key column="fk_actim"></key>
<many-to-many class="com.fcwr.model.Activity" column="fk_actia"/>
</set>



我要做的是:删除活动。把报名单,我的活动全部数据删除。
结果:
我删除活动报错。
org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback;
SQL [delete from t_activity where f_id=?];
Cannot delete or update a parent row: a foreign key constraint fails (`fcwr`.`t_activitylist`, CONSTRAINT `FK3C3F4A18E0E535F0` FOREIGN KEY (`fk_actid`) REFERENCES `t_activity` (`f_id`)); nested exception is com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`fcwr`.`t_activitylist`, CONSTRAINT `FK3C3F4A18E0E535F0` FOREIGN KEY (`fk_actid`) REFERENCES `t_activity` (`f_id`))

上面是错误信息。
应该是级联没有关联上。
...全文
621 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
问题解决了... 不是关系问题! 在这样的删除最好还是用hibernate的对象删除。 这个项目为了提高效率就采用了ibatis的 SQL... 但是最终问题。没解决。 就是 SQL 为什么删不掉? hibernate对象删除就不用说了吧!
涅槃 2010-11-26
  • 打赏
  • 举报
回复
a foreign key constraint fails 应该是你的配置文件有错误,要不就是pojo类,没有对应的对象,你仔细检查下,代码太少看不出来
fengxuegupo 2010-11-26
  • 打赏
  • 举报
回复
你光在配置文件中级联,你在表中级联了么?有没有添加外键?有没有将这个外键进行设置?
xieshengjun2009 2010-11-26
  • 打赏
  • 举报
回复
级联没什么难的,关键是具体的业务要求。级联删除!总体来说就是对一对多或多对多的关系进行操作!
你上面说,级联没有关联到,那就得仔细检查一下了。从头到尾,把来龙去脉弄清楚!应该没问题,祝你好运!
  • 打赏
  • 举报
回复
.........闷

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧