在用hibernate做级联删除操作,a,b表是一对多关系,
其中a表的映射文件配置 
<set
            name="loginbean"
            lazy="true"
            inverse="true"
            cascade="all-delete-orphan"
            sort="unsorted"
        >            <key
                column="ssbm"
            >
            </key>            <one-to-many
                  class="com.spring.model.bean.LoginBean"
            />        </set>b表的映射文件配置
 <many-to-one
            name="departmentBean"
            class="com.spring.model.bean.DepartmentBean"
            cascade="none"
            outer-join="auto"
            update="true"
            insert="true"
            property-ref="ssbm"
            column="ssbm"
        />
但是我现在只删除了a表,却没有级联删除b表的对应记录,我错在什么地方?

解决方案 »

  1.   

    " cascade="all-delete-orphan" 
    这行的问题
      

  2.   

    你还是去看下你数据库中外键有个选项叫On Delete,你选casecade那一项才行
      

  3.   

     那是肯定了  你不建立主外键关系是不可以的
     还有 那个 cascade 里面 你如果要级联删除的话 
      写 all 就可以了  反正我一般是写个 all 
    因为一般可以级联删除的都需要 级联修改 添加
     
      

  4.   

    顶1楼的, 引用 3 楼 liujun3512159 的回复:
    必须要建立外键才能进行级联删除吗?hibernate里面的映射只是逻辑上的,并不要求你的数据库表真的要建立外键。推荐的hibernate的经典书: 深入浅出Hibernate :)