zoukankan      html  css  js  c++  java
  • hibernate基础知识02对象的状态转换(持久化,瞬态,游离态)

    1.对象有三种状态,比如User实体类对象 user

      a.瞬态-transientObject,使用new 操作符创建的对象,没有和数据库中的记录相关联(即没有执行增删改查的对象);

      b.持久化对象-persistObject,该对象在数据库中有对应的主键关联,且由session进行管理的对象(被session执行增改查)的对象.

      c.游离态对象-detachedObject,该对象在数据库中有对应的主键关联,但没有被session管理(已经执行过的对象,但session已经关闭,即将注销该对象).

    2.举例

    @Test
    public void test1(){
    Session session = DBManager.openSession();
    session.beginTransaction();
    // //持久态对象,该对象是被session从数据库中取出来的,与数据库有相应的关联
    User user = (User)session.get(User.class, "402880ef5c024d77015c024d7a460000");
    System.out.println("user.id = " + user.getId());


    //瞬态 该对象呗创建出来,但是没有被session 管理也没有和数据库关联
      User user = new User();
      user.setName("小明");
      user.setAge(21);
      user.setSex(0);


    // //瞬态-->持久态  被session管理后执行save()方法就成了持久态对象
    // Serializable id = session.save(user);
    // System.out.println("id = " + id);

    session.getTransaction().commit();
    session.close();

    //游离态对象.session已经关闭了...user虽然和数据库有了关联(被执行过save()方法),但是已经脱离了session 的管理
    System.out.println(user.getName());
    }

    基本概念不难理解...

  • 相关阅读:
    10.16 NOIP模拟赛
    10.14 牛客提高集训营5
    10.12 正睿普及4
    Codeforces Round #516 (Div. 2) (A~E)
    hihoCoder.1509.异或排序(位运算 思路)
    hihoCoder.1513.小Hi的烦恼(bitset 五维偏序)
    hihoCoder挑战赛19 A.Rikka with Sequence(状压DP)
    BZOJ.3668.[NOI2014]起床困难综合症(贪心)
    BZOJ.4903.[CTSC2017]吉夫特(Lucas DP)
    BZOJ.3329.Xorequ(数位DP)
  • 原文地址:https://www.cnblogs.com/ou134568/p/6860028.html
Copyright © 2011-2022 走看看