日期:2014-05-18  浏览次数:20717 次

特别 hibernate 中 1:m 和 m:n 关系如何高定呢 ?inverse 和cascade
1:m   的关系应该合理的怎么设置呢 ?
特别   inverse   和cascade两个属性?  
要求是这样的   :(没有弄明白inverse   和cascade两个属性)
当删除1方的一条记录的时候,m方相关记录应该全被删除!
当删除m方的某一个记录的时候要求1方相关的记录保持不变.您说是不是要按如下设置才能达到这样的要求呢   ?
1方   inverse= "true "   cascade= "all "
m方:inverse= "false "   cascade= "save_update "(书上说主控权放到m方,避免在m方的关联字段先插入空值的情况)
这样设置能满足我说的要求吗?
m:n的关系
当删除m方的某一个记录的时候要求n方相关的记录保持不变(只是第三个表_关联表有所变化)
当删除n方的某一个记录的时候要求m方相关的记录保持不变(只是第三个表_关联表有所变化)
是不是就应该这样配置:
m方     cascade= "save_updatel "
n方:   cascade= "save_update "   (双方都有主控权)
这样可以吗?今天我出现这样的一个问题:删除(1:m的关系)m方一条记录的时候竟然把别的关联的表(3个表)中的相关联的记录全部删除了,是怎么回事情?


------解决方案--------------------
这不是hibernate中的级联关系吗?
------解决方案--------------------
当删除1方的一条记录的时候,m方相关记录应该全被删除!
cascade= "delete "

当删除m方的某一个记录的时候要求1方相关的记录保持不变
cascade= "none "
要这样设置属性
你试试