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

    一个测试hibernate对象保存的实例:

        @Test
        public void testSavePerson(){
            Session session = sessionFactory.openSession();
            Transaction transaction = session.beginTransaction();
            
            Person person = new Person();
            person.setPname("小丽");
            person.setPsex("女");        
            /**
             * 参数必须持久化对象
             */
            session.save(person);        
            transaction.commit();
            session.close();
        }   

    1.Person person = new Person(); //在内存中创建一个person对象
    2.person.setPname("小丽"); //给person对象赋值
    3.person.setPsex("女");         //给person对象赋值
    4.session.save(person); //将person移动到hibernatequy区域、
    5.transaction.commit(); //发送sql语句,提交事件,发生完第五步后,person存入到数据库中
    6.session.close(); //关闭数据库和hibernate的链路
    1、2、3步的对象为临时对象,经过session。save()person对象变为持久化状态的对象,4、5是持久化状态(托管状态对象)。6是脱管状态对象
    临时状态对象和脱管状态对象的区别:
    两个本质一样,但是脱管状态对象曾经与数据库交互过。只有处于持久化状态时hibernate才管。

    session.save()、session.update()、session.get()可以把一个临时状态的对象转换成一个持久化状态对象。

    session.clear()将session中的对象从session中清空。从持久化状态转为脱管状态。

    session.evict(person)把某一个对象从session中清空

    一个对象是否是持久化对象是针对某一个session而言的。

    一个session对应一个事物

  • 相关阅读:
    PyDev for eclipse 插件下载地址
    Impala SQL 语言元素(翻译)[转载]
    oracle9i-11.2安装包及补丁包下载链接
    oracle link的创建过程
    Oracle 查询历史数据(转帖)
    Alpha、Beta、RC、GA版本的区别
    oracle wm_concat(column)函数的使用
    Quest.Central.for.DB2.v5.0.2.4下载地址
    Hadoop 管理工具HUE配置-初始配置
    maven编译下载源码
  • 原文地址:https://www.cnblogs.com/bendoudou/p/8547505.html
Copyright © 2011-2022 走看看