怎么才能只更新指定的字段,而不是把所有的字段都更新一次

解决方案 »

  1.   

    1. 直接用Sql语句,update XXX set XXX
    2. 用Hibernate取出对应记录的Entity,设置你想修改的值,然后saveOrUpdate
      

  2.   

    能不能用 hibernateTemplate.update(   )什么方法直接修改我要修改的某一个字段的值, 不用jdbc直连的查询
      

  3.   

    hibernateTemplate.update(string,object)方法怎么用
      

  4.   

    Entity entity = hibernateTemplate.get(Entity.class, pk);
    entity.setValue(XXXX);
    hibernateTemplate.update(entity);
      

  5.   

    我一个表里几十个字段是不是都要保存到entity.set方法里啊,我就想修该一个字段,其它的全都不动,也不想把其它字段重新在保存一次
      

  6.   

    你在配置文件里设置用Lazy=true。(延迟加载)
    然后用Entity entity = hibernateTemplate.get(Entity.class, pk); 取出entity后
    你想修改那个就set那个,其它不用管。
    然后,hibernateTemplate.update(entity); 
    这样,肯定你想要修改的字段已经更新了,至于其它字段,由于延迟加载了,已经不会重新保存吧(个人猜想,未经实践,呵呵,其实你让Hibernate在执行时把Sql语句打印出来睇一睇就知道啦)。
      

  7.   

    直接写hql语句,hibernateTemplate有个方法bulkUpdate可以实现update or delete的操作
      

  8.   

    bulkupdate保存的中文都是乱码?什么原因啊!
      

  9.   

    如果只更新一条数据,bulkupdate的效率怎么样?
      

  10.   

    个人认为这个string相当于表的别名的样子,而这里的string就是后面的objcet的别名!直接用update(object)也是可以的我也测试了一下,用saveOrUpdate(object)需要将所有的数据都更新,而update(objcet)只需要更新更新的字段,如果只是单纯的更新操作,还是建议使用后者
      

  11.   

    我不会用这个hibernateTemplate.update(Object entity).方法,为什么我传进去的是一个user类却不能更新数据库呢? public boolean update(Manager manager)
    {
    String hqlString="from Manager manager where username='"+manager.getUsername()+"'and superpassword='"+manager.getSuperpassword()+"'";
    Manager manager2=(Manager) hibernateTemplate.find(hqlString).get(0);

    try{
    System.out.println("进入第一步");
    hibernateTemplate.update(manager2);
    System.out.println("基本成功");
    return true;
    }
    catch (Exception e) {
    return false;
    }
    }