Hibernate应用中,根据ID加载上来一个持久化的对象后,修改它的相关属性值,然后通过update(X)方法更新它和通过save(X)方法保存它,效果一样嘛?还是前者修改记录,后者再增加一条记录?

解决方案 »

  1.   

    update可以根据主键判断数据库是否有这条数据
    如果没,可以新增一条
    如果有,则更新可被修改的字段
      

  2.   

    对呀!难道CSDN这么牛x,搞对象,找工作都来CSDN。。I CALL!
      

  3.   

    不一样,如果数据中有条记录主键ID等于1,update是更新ID为一的记录(ID仍然为1),sava方法从新分配了一个ID了,不是1了,一般开发项目的时候数据库里的主键是让它自动生成的,如下:
    CREATE   TABLE   `persons`   (   
          `id`   int   unsigned   NOT   NULL   auto_increment,   
          `name`   char(60)   NOT   NULL   default   '',   
          PRIMARY   KEY     (`id`)   
      )   TYPE=MyISAM   AUTO_INCREMENT   =   100001; 
    如果还有其他表和这个表ID有外键关系,如果用save方法从新分配个ID,就找不到原来ID的相关联的记录了