hibernate中one-to-many and many-to-one关系的级联删除问题???

niyboy 2005-01-24 11:13:35
hibernate中one-to-many and many-to-one关系的级联删除问题???

我现在有四个表,关系分别是:
A----》B 关系是one-to-many
M----》C 关系是one-to-many C---->M 关系是many-to-one
B----》C 关系是one-to-many C---->B 关系是many-to-one
C----》D 关系是one-to-many D---->C 关系是many-to-one


现在我需要对C进行删除操作,当然在D中对应C的数据也要删除掉

我使用这样:

C c = (C) session.load(C.class, id);
session.delete(c);
session.flush();

我看过文档:

我的代码会删除对象p及其所有子对象对应的数据库记录。正是我需要的操作,感觉应该没有错

始终出现这样的错误:

2005-01-24 10:59:20,203 [org.Dao.daoImp.WenDaoImp]-[ERROR] wenzhangDaoImp.delWenzhang::::::org.orm.hibernate.HibernateSystemException: not-null property references a null or transient value: org.hibernate.bean.C.M; nested exception is net.sf.hibernate.PropertyValueException: not-null property references a null or transient value: org.hibernate.bean.C.M

请问是什么原因呢?

我现在对C进行删除应该怎么做呢?
...全文
422 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
niyboy 2005-01-24
  • 打赏
  • 举报
回复
我的XML中配置也是没有问题的:因为其他操作都能成功,

配置:
onetomany:

<set name="aa" lazy="true" inverse="true" cascade="all" >
<key column="a_id"/>
<one-to-many class="org.hibernate.bean.aa" />
</set>

manytoone:

<many-to-one
name="bb"
column="a_id"
class="org.hibernate.bean.bb"
not-null="true"/>

应该没有问题
0xCafeBabe 2005-01-24
  • 打赏
  • 举报
回复
看看hibernate ref双向的关系该怎么处理
niyboy 2005-01-24
  • 打赏
  • 举报
回复
如果我这样操作就能成功:


A c = (A) session.load(A.class, id);
session.delete(c);
session.flush();

这样的话,将删除A的所有数据,是可以成功的,

但是现在我要对C进行删除,怎么会不行呢?
0xCafeBabe 2005-01-24
  • 打赏
  • 举报
回复
真是的,非要把代码写出来才明白
C c = (C) session.load(C.class, id);
c.getM().getCs().remove(c);
c.getB().getCs().remove(c);
session.delete(c);
sgdb 2005-01-24
  • 打赏
  • 举报
回复
<many-to-one
name="bb"
column="a_id"
class="org.hibernate.bean.bb"
not-null="true"/>
把not-null="true" 去掉看看

67,513

社区成员

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

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