zoukankan      html  css  js  c++  java
  • hibernate中对象的状态

    1.   Transient(临时状态):没有id,[数据库里面没有值对应];

    2. Persistent(持久化状态):有id,并且被hibernate管理,[数据库里面有值对应]

    3. Detached(游离状态):有id,没有被hibernate管理,[数据里面有值对应]

    public void test1() {
        /**
         * 对象的状态:    
         */
            /* 临时状态:此时的stu为临时状态
                临时状态:
                1,new 语句刚创建了一个对象。
                2,删除状态的对象session提交,对象处于临时状态。
             */        
            Student123 stu=new Student123("张三");//临时
            
            Session session = HibernateUtils.getSession();
            Transaction transaction = session.beginTransaction();
            session.save(stu);//持久
            /*持久状态:此时的stu为持久状态
                持久化状态:
                1,save方法把临时对象变成持久化状态,save方法把游离对象变成另一个持久化对象。
                2,get方法返回的对象是持久化状态
                3,load方法返回的对象是持久化状态
                4,Query.list()方法返回的实体对象是持久化状态,在处理大数据量的时候,需要及时清理缓存。
                5,update方法把游离对象变成了持久化对象。
            */
            transaction.commit();
            session.close();
            /*游离状态:此时的stu为游离状态,因为session已经关闭了,但是stu在数据库中,有ID
                游离状态
                1,session.close()方法把所有(关闭的那个session)持久化对象变成游离对象
                2,session.clear()方法把所有(调用clear方法的session)持久化对象变成游离对象
                3,session.evict(Object)方法把指定的持久化对象变成游离对象。
            */
            System.out.println(stu.getId());//游离
        }

    4.   Removed(删除状态):有id,没有被hibernate管理, 计划被删除,[数据库里面有值对应]

        public void test2() {    
            Session session = HibernateUtils.getSession();
            Transaction transaction = session.beginTransaction();
            /*
             * ④:即将删除的状态:只有事务提交之后,才能从数据库中删除,即将删除
             * 删除状态:
                delete方法让持久化状态和游离状态变成删除状态。
                但是删除状态的对象必须要等到session刷新,事务提交之后才真正的从数据表里面删除。
             * 
             */
            session.delete(new Student123(1L));
            transaction.commit();
            session.close();
        }
  • 相关阅读:
    组件GIS 0 前言
    GIS数据结构与算法
    GIS数据结构与算法 0 前言
    Git推送本地工程到远程仓库
    为知笔记+Typora+PicGo发表博客园博客
    时间记录"时间块"的使用技巧
    WebGIS学习路线
    [c++指针教程]用简单链表练习指针
    动态规划题目整理
    图论刷题整理
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/6561326.html
Copyright © 2011-2022 走看看