NHibernate进阶篇:06讲有哪些考察重点?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2720个文字,预计阅读时间需要11分钟。
1. 实体生命周期:Transient:临时状态。 - 代码中使用new创建实体对象实例时,其状态为transient,即临时。
Persistent:持久化状态。 - 实体对象实例与数据库中一条记录对应,且session处于活动状态。
1. 实体生命周期Transient: 临时状态。代码中使用new创建一个实体的对象实例时,其状态为transient。
Persistent: 持久化状态。实体的对象实例跟数据库中一条记录对应,并且其session处于活动状态。例如使用session.Get()方法加载的实体对象、使用session.Save()保存过的实体对象,在session关闭以前其状态为persistent。Transient状态的对象调用session.Save()、session.Update()等方法,并且session未关闭,其状态变成persistent。
Detached: 游离状态。实体的对象实例跟数据库中一条记录对应,并且其session处于非活动状态。Persistent状态的对象,在对应的session关闭之后,其状态变成detaiched。Detached对象可以重新跟某个session建立联系,被这个session管理起来,例如对detached对象调用session.Update()。
Persistent状态的对象是受管理的对象,它被放置在当前session的管理容器中,对其属性的修改会被记录,当session的事务提交时,所有这些更新修改会被提交到数据库。Transient和detached状态的对象不受管理。
Transient和detached状态的区别是,对detached状态的对象,能够确定它跟数据库中的一条记录对应,而transient状态则不一定。
本文共计2720个文字,预计阅读时间需要11分钟。
1. 实体生命周期:Transient:临时状态。 - 代码中使用new创建实体对象实例时,其状态为transient,即临时。
Persistent:持久化状态。 - 实体对象实例与数据库中一条记录对应,且session处于活动状态。
1. 实体生命周期Transient: 临时状态。代码中使用new创建一个实体的对象实例时,其状态为transient。
Persistent: 持久化状态。实体的对象实例跟数据库中一条记录对应,并且其session处于活动状态。例如使用session.Get()方法加载的实体对象、使用session.Save()保存过的实体对象,在session关闭以前其状态为persistent。Transient状态的对象调用session.Save()、session.Update()等方法,并且session未关闭,其状态变成persistent。
Detached: 游离状态。实体的对象实例跟数据库中一条记录对应,并且其session处于非活动状态。Persistent状态的对象,在对应的session关闭之后,其状态变成detaiched。Detached对象可以重新跟某个session建立联系,被这个session管理起来,例如对detached对象调用session.Update()。
Persistent状态的对象是受管理的对象,它被放置在当前session的管理容器中,对其属性的修改会被记录,当session的事务提交时,所有这些更新修改会被提交到数据库。Transient和detached状态的对象不受管理。
Transient和detached状态的区别是,对detached状态的对象,能够确定它跟数据库中的一条记录对应,而transient状态则不一定。

