现在的位置: 首页 > 综合 > 正文

hibernate的状态及转换

2013年01月29日 ⁄ 综合 ⁄ 共 576字 ⁄ 字号 评论关闭

hibernate的状态有三种:自由态、持久态、游离态。

自由状态特征:

1、不在session缓存中;

2、数据库中没有对象记录。

如何进入自由态:

1、通过new语句创建一个对象;

2、当调用Session的delete()方法,从session缓存中删除一个对象时。

 

持久化状态特征:

1、处于session缓存中;

2、持久化对象中数据库设有对象记录;

3、session在特定时刻会保持二者同步。

如何进入持久化状态:

1、session的save()把临时----->持久化状态;

2、session的load(),get()方法返回的对象;

3、session的find()返回的list集合中存放的对象;

4、session的update(),saveOrupdate()是游离---->持久化状态。

 

游离状态特征:

1、不在session缓存中;

2、游离对象由持久化状态转变而来,数据库中可能还有对应记录。

持久态到游离态:

1、session的close()方法;

2、session的evict()方法,从缓存中删除一个对象,提高性能,但少用。

 

Save()方法把实体对象从自由状态变为持久状态

Load()、get()方法返回的实体对象总是持久状态;

Update()、saveOrUpdate()、lock()方法使实体对象从游离状态变为持久状态。

 

状态转换图如下:

抱歉!评论已关闭.