NHibernate进阶篇:06讲有哪些考察重点?

更新于
2026-09-26 05:26:26
15阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2720个文字,预计阅读时间需要11分钟。

NHibernate进阶篇:06讲有哪些考察重点?

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分钟。

NHibernate进阶篇:06讲有哪些考察重点?

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状态则不一定。
阅读全文