您的位置:首页 > 其它

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

2016-04-21 11:23 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: