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();
但是出错了,望各位大侠指点迷津阿!!
...全文
289 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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的时候就出错了,为什么会这样的,要怎么做?
回复
相关推荐
发帖
Java EE
创建于2007-09-28

6.6w+

社区成员

J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
申请成为版主
帖子事件
创建了帖子
2005-03-31 11:21
社区公告
暂无公告