A和B是一对多
当删除A的时候B不删除 CascadeType应该设置为什么?

解决方案 »

  1.   

    好久没用都忘了,我记得是save-update
      

  2.   

    所在cascade,就是说我在更新一方的时候,可以根据这一方对象之间的关联关系,去对被关联方进行持久化,比如说Team和Student之间的1对多关系,使用cascade,可以在team方维护其持有的student集合时,自动对其新增,修改,删除的student对象进行持久化,而没必要显示的进行session.save(student)操作
    注意:一般不要all 因为一不小心会删除不必要的数据
      

  3.   

    详细例子请看: http://esffor.javaeye.com/blog/168288
      

  4.   

    save-update  我也刚学 如果不对的话 请回复下我  互相学习 啊!!
      

  5.   

    我使用的save-update. 当我从A端删除的时候报错有外键约束而不是吧A删掉并将B关联A的外键置空啊
      

  6.   

    我想达到的就是 A持有B引用的时候A可以删除掉B不删除而是把B关联A的外键设null
      

  7.   

    那就你删除的时候
    A.SetB(null)
    dao.del(A);
      

  8.   

    你干脆不设置cascade啊! 这样就不会把那个一的那方置空! 我就没设置cascade 如果想通过查询多的一方也把一的那方也查出来 可以设置 fetchtype=eager
      

  9.   

    OneToMany(fetch=FetchType.LAZY)
    ManyToOne fetch默认是eager
    cascade=CascadeType.ALL  (ALL包括增 删 改)
      

  10.   

    不删除在映射文件中设置一下,casecade = false ,hibernate 3.2 默认为 true,对应的B表要设置允许为空,否则级联不了,当删除a时,b里的字段为NULL