在hibernate中,对一个表进行更新时,如果这个表有一个外键的话,那么更新时会不会也把外键映射过来的对象也更新了呢?
如果真的把外键映射过来的对象也进行更新的话,有没有办法不让它更新呢?
我想更新的只是当前这个表,而不用更新外键所映射的对象。
PS:bean下的映射文件是自动生成的,没有改过任何东西,是不是要在里面修改什么呢?

解决方案 »

  1.   

    如果我没记错的话,在映射文件下把你关联的那个表加上一条属性:cascade="none"
      

  2.   

    inverse属性,影响数据的存储,也就是持久化你可以在多的一端,也就是many 的一端设置inverse = true 这样就不会更新外键所映射的对象了
      

  3.   

    设置cascade  有一下几个属性
    (1)none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联操作。它是默认值。
    (2)save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象,游离对象)。
    (3)delete:在删除当前对象时,级联删除附属对象。
    (4)all:所有情况下均进行级联操作,即包含save-update和delete等等操作。
    (5)delete-orphan:删除此对象的同时删除与当前对象解除关系的孤儿对象(仅仅使用于一对多关联关系中)。