标签:
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