zoukankan      html  css  js  c++  java
  • hibernate 三个状态

    Transient(瞬时状态),表示对象没有被session管理并且数据库中没有;

    Persistent(持久化状态),表示对象已经被session管理且数据库中有;

    游离状态,表示对象没有被session管理,但是在数据库中有;

    User user = new User();

    user.setName("zhangsan");

    //到此,对象user是处于瞬时状态;

    session.save(user);

    //执行save之后,user被session所管理,且,数据库中已经存在,此时就是Persistent状态

    user.setName("lisi"); 

    //当在提交时,会把session中的对象和目前的对象进行比较

    //如果两个对象中的值不一致就会继续发出相应的sql语句

    session.getTransaction().commit();

    //所以上面的代码会产生两条sql语句,一个是插入语句,一个是更新语句;

    在session中不能存在两份拷贝,否则会抛出异常,

    不过用merge方法会判断session中是否已经存在同一个对象,如果存在就将两个对象合并;

    但是一般还是用save方法,不用merge方法。

  • 相关阅读:
    select下拉框运用
    oracleINS-13001 环境不满足最低要求
    组成原理-存储器
    操作系统-- 存储器
    组成原理-CPU
    计算机网络-tcp-ip
    操作系统-处理机
    数据链路层~计算机网络
    物理层--计算机网络
    JavaScript-轮播2
  • 原文地址:https://www.cnblogs.com/yzdqxing/p/4097372.html
Copyright © 2011-2022 走看看