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();
        }
  • 相关阅读:
    Ubuntu下hadoop2.4搭建集群(单机模式)
    软考历程(2)——海明码校验
    key 串口
    android删除文件出错
    ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
    【SICP归纳】2 高阶函数和数据抽象
    Java加密算法 AES
    从BAE到SAE,从SAE又回到BAE
    velocity-字母序号 list
    Java 加密解密 对称加密算法 非对称加密算法 MD5 BASE64 AES RSA
  • 原文地址:https://www.cnblogs.com/zhang-bo/p/6561326.html
Copyright © 2011-2022 走看看