Hibernate的级联删除怎么搞??救命阿!!!

fengyun1314 2005-03-31 11:21:30
现在是A-》B是一对多的关系,现在要删除A的时候,B也要把相关的同时删除,
也就是级联,我写的代码是:
Session session = this.getSession();
A a= (A)session.load(A.class,id);
session.delete(a);
session.flush();
但是出错了,望各位大侠指点迷津阿!!
...全文
328 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dakuntk 2005-04-04
  • 打赏
  • 举报
回复
<set
name="as"
lazy="true"
inverse="false"
cascade="all"
>
中的name要在哪里定义阿??

你的PO名字,比如Workgroup类下面的user属性,name=user
inverse=“true”吧
fengyun1314 2005-04-04
  • 打赏
  • 举报
回复
各位大哥帮帮忙阿
fengyun1314 2005-04-04
  • 打赏
  • 举报
回复
执行删除的时候出现这样的错误:
SQL Error: 1407, SQLState: 72000
ORA-01407: cannot update ("B"."ID") to NULL
这个是什么错误??
goodcool 2005-04-03
  • 打赏
  • 举报
回复
楼主很执着
佩服
小弟最近做毕业设计 正用上这东东 还在一头雾水
fengyun1314 2005-04-02
  • 打赏
  • 举报
回复
<set
name="as"
lazy="true"
inverse="false"
cascade="all"
>
中的name要在哪里定义阿??
fengyun1314 2005-04-02
  • 打赏
  • 举报
回复
没有人帮帮我嘛?
fengyun1314 2005-04-02
  • 打赏
  • 举报
回复
如果我要删除A的时候把A-》B-》C中的,B和C都要删除,那么
<set
name="as"
lazy="true"
inverse="false"
cascade="all"
>
要设置在哪个地方??
楼上的那个b.getSet().remove(a);中的b是代表什么??
discolt 2005-04-01
  • 打赏
  • 举报
回复
这样删
<set
name="as"
lazy="true"
inverse="false"
cascade="all"
>

b.getSet().remove(a);
session.remove(a);

jianghuxing 2005-03-31
  • 打赏
  • 举报
回复
cascade="delete"

把你的hbm贴出来。然后看看你的数据库中没有没有设。
legendtw 2005-03-31
  • 打赏
  • 举报
回复
cascade="all"
fengyun1314 2005-03-31
  • 打赏
  • 举报
回复
怎么没有回答我阿!!
fengyun1314 2005-03-31
  • 打赏
  • 举报
回复
出现的错误是:
SQL Error: 2292, SQLState: 23000

ORA-02292: integrity constraint (EYODO.MOC_MPG_FK) violated - child record found
为什么会这样的
在声明中我是这样设置的
likeBean 2005-03-31
  • 打赏
  • 举报
回复
出什么错?
在a中声名
<set
name="as"
lazy="true"
inverse="true"
cascade="delete"
>
<key
column="aid"
>
</key>
<one-to-many
class="A"
/>
</set>
就可以了
jianghuxing 2005-03-31
  • 打赏
  • 举报
回复
你给对应的数据库字段所起的名字,将来在用HQL的时候要用到。

也就是你在PO是的属性名。与关系数据库中的字段对应。

fengyun1314 2005-03-31
  • 打赏
  • 举报
回复
要在B中声明用<set
name="as"
lazy="true"
inverse="true"
cascade="delete"
>

那么里面的name是写什么?
java_ak47 2005-03-31
  • 打赏
  • 举报
回复
学习,关注ing
jianghuxing 2005-03-31
  • 打赏
  • 举报
回复
<set
name="as"
lazy="true"
inverse="true"
cascade="delete" ////要在B中也有的
>
<key
column="aid"
>
</key>
<one-to-many
class="A"
/>
</set>
那么你在B的hbm文件中也要有级联删除,这样才能成功
fengyun1314 2005-03-31
  • 打赏
  • 举报
回复
我要删除的是A,并且也要把B删除,A和B是一对多的关系,并且B-》C,B和C也是一对多的关系,也要删除C,如果C中没有和B有相关的数据的话,那删除A就可以同时删除B了,但是如果C中有和B相关的数据,那删除A的时候就出错了,为什么会这样的,要怎么做?

67,549

社区成员

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

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