首页 > Web开发 > 详细

hibernate--对象的三种状态Transient,Persistent,Detached

时间:2016-04-21 11:36:58      阅读:265      评论:0      收藏:0      [点我收藏+]

Transient:刚new出来的对象

Persistent: sava或者update之后的状态

Detached: close或者clear之后

test函数:

@Test
	public void testSaveWith3State() {
	
		Teacher t = new Teacher();		
		t.setName("t1");
		t.setTitle("middle");
		t.setBirthDate(new Date());  //此时t是transient状态
		
		Session session = sessionFactory.getCurrentSession();
		session.beginTransaction();
		session.save(t);
		System.out.println(t.getId());  //此时是persistent状态
		session.getTransaction().commit();		
		System.out.println(t.getId());  //此时是detached状态
	}

3种状态的区分:

1. 有没有ID? 

2. ID在数据库里有没有?

3. ID在内存里有没有?  

transient: 内存中的一个对象, 没ID,缓存里也没有

persistent:内存里有, 缓存有, 数据库有, 有ID

detached:内存有, 缓存没有, 数据库有,有ID

hibernate--对象的三种状态Transient,Persistent,Detached

原文:http://www.cnblogs.com/wujixing/p/5416226.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!