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

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

时间:2016-04-21 11:40:11      阅读:125      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!