zoukankan      html  css  js  c++  java
  • hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了

    hibernate中保存一个对象后再设置此对象的属性为什么不需要调用update方法了

    例如
    session.save(user);
    user.setAge(20);

    原因:
    hibernate对象的三种状态。
    瞬时态(没有id,不与session关联)
    持久态(有id,与session关联)
    托管态(有id,不与session关联)

    User user = new User();//新建的对象是瞬时态

    session.save(user);//save后,user变成持久态

    user.setAge(20);//对持久态的改变,会在session提交时自动更新数据库

    session.close();//session关闭后,user变成托管态

    user.setAge(19);//这时改变其属性,将不会自动更新数据库

    session.update(user);//更新托管态对象到数据库,并且将其重新变为持久态。

    最后:
    session.get()
    session.load()
    session.createCriteria().list()
    查询出来的都是持久态。

    save以后user就在session中了,hibernate有个自动提交功能(auto commit),session结束时可以自动将session里修改过的内容提交到数据库,所以,就是这个现象。
  • 相关阅读:
    12. nc/netcat 用法举例
    7. 由一道ctf学习变量覆盖漏洞
    11. 几点基于Web日志的Webshell检测思路
    约瑟夫环
    栈结构的经典算法题
    二叉查找树之二
    fork与vfork
    数组常见算法题
    赛马问题
    fibonacci 数列及其应用
  • 原文地址:https://www.cnblogs.com/Syney/p/5587771.html
Copyright © 2011-2022 走看看