一个User类,对应着数据库中的user表,它有id,name,password三个属性,现在我要更新一个用户的password,但是我传递给Hibernate的update的对象只有用户的id和password两个属性,我该怎么写配置文件,才能让该用户的name不为空啊???如果直接用update的话NAME就为空了

解决方案 »

  1.   

    //不是插入修改应该不会吧 
    /**
     * 修改用户密码
     * @param instance
     */
    public void updatePassword(VO instance) {
    Transaction tx = null;
    Session session = null;
    try {
    session = getSession();
    tx = session.beginTransaction();

                             //用这个
                            session.saveOrUpdate(instance);
    tx.commit(); log.debug("update successful");
      

  2.   

    你配置文件里面不是有个这个吗
    <property name="name" />
    加个字段,改成这样,这样更新后就不为null了
    <property name="user_id" update="false"/>
      

  3.   

    是这样,呵呵<property name="name" update="false"/>
      

  4.   

    也可以使用hql的方式
    String hql = "update User set User.password = :password where User.id = :id";
    Query query = session.createQuery(hql);
      

  5.   

    你是更新又不是插入一条新数据,name怎么会为空,我估计你搞错了
      

  6.   

    dyamic-update是这个属性吗?怎么设置呢
      

  7.   

    通过id得到这条记录的对象后,直接修改密码就OK了,用update的话name是不会为空的,估计你是搞错了
      

  8.   

    解决了,把dyamic-update = true就可以了