码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate对象的状态

时间:2018-03-12 10:26:36      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:div   on()   对象   tps   factor   pre   span   gpo   一个   

一个测试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而言的。

技术分享图片

 

Hibernate对象的状态

标签:div   on()   对象   tps   factor   pre   span   gpo   一个   

原文地址:https://www.cnblogs.com/bendoudou/p/8547505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!