比如用户信息,在界面上修改了用户地址,
如何只更新修改了的字段。
而不更新其他字段(比如:用户注册时间等)。

解决方案 »

  1.   

    1.简单的办法:先取出bo对象.然后xbo.setXXX(YYY)好了,saveorupdate()会自动只更新值变换过的字段.
    2.配置相应的映射文件,把不要更新的字段,改成update = false.
      

  2.   

    <hibernate-mapping 

        <class 
            name="ClassName" 
            table="TABLE_NAME" 
            dynamic-update="true"  =>Here, default value = "false"
        >
    .....
    </class> </hibernate-mapping>
      

  3.   

    关于dynamic-update="true"当我只知道用户ID,想修改用户姓名时,除了ID其他字段(比如:用户注册时间等)的值都不知道的情况,dynamic-update="true",能解决此问题么?
      

  4.   

    show sql true
    看打出来得
      

  5.   

    m是传过来的对象
    这种方法是可以的
    String hql="update com.langwei.roles.model.Manager m set m.name=? ,m.password=?,m.creatDate=? where m.managerId=?";
    getSession().createQuery(hql).setString(0,m.getName())
    .setString(1,m.getPassword())
    .setDate(2,m.getCreatDate())
    .setInteger(3,m.getManagerId()).executeUpdate();