NHibernate教程第21章:深入探究对象状态管理?

更新于
2026-09-24 10:58:39
17阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

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

NHibernate教程第21章:深入探究对象状态管理?

本节内容+引入+对象状态+对象状态转换+结句+引入+在程序运行过程中使用对象的方式对数据库进行操作,必然会生成一系列的持久化类实例。这些对象可能是刚刚创建并初始化的。

本节内容

  • 引入
  • 对象状态
  • 对象状态转换
  • 结语
引入

在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象。这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根据对象和当前会话的关联状态,我们可以把对象分为三种:

瞬时对象:对象刚刚建立。该对象在数据库中没有记录,也不在ISession缓存中。如果该对象是自动生成主键,则该对象的对象标识符为空。

持久化对象:对象已经通过NHibernate进行了持久化,数据库中已经存在对应的记录。如果该对象是自动生成主键,则该对象的对象标识符已被赋值。

托管对象:该对象是经过NHibernate保存过或者从数据库中取出的,但是与之关联的ISession已经关闭。虽然它有对象标识符且数据库中存在对应记录,但是已经不再被NHibernate管理。

对象状态

NHibernate提供了对象状态管理的功能,支持三种对象状态:瞬时态(Transient)、持久态(Persistent)、托管态(Detached)。

1.瞬时态(Transient)

对象刚刚创建,还没有来及和ISession关联的状态。这时瞬时对象不会被持久化到数据库中,也不会被赋上标识符。如果不使用则被GC销毁。ISession接口可以将其转换为持久状态。

阅读全文

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

NHibernate教程第21章:深入探究对象状态管理?

本节内容+引入+对象状态+对象状态转换+结句+引入+在程序运行过程中使用对象的方式对数据库进行操作,必然会生成一系列的持久化类实例。这些对象可能是刚刚创建并初始化的。

本节内容

  • 引入
  • 对象状态
  • 对象状态转换
  • 结语
引入

在程序运行过程中使用对象的方式对数据库进行操作,这必然会产生一系列的持久化类的实例对象。这些对象可能是刚刚创建并准备存储的,也可能是从数据库中查询的,为了区分这些对象,根据对象和当前会话的关联状态,我们可以把对象分为三种:

瞬时对象:对象刚刚建立。该对象在数据库中没有记录,也不在ISession缓存中。如果该对象是自动生成主键,则该对象的对象标识符为空。

持久化对象:对象已经通过NHibernate进行了持久化,数据库中已经存在对应的记录。如果该对象是自动生成主键,则该对象的对象标识符已被赋值。

托管对象:该对象是经过NHibernate保存过或者从数据库中取出的,但是与之关联的ISession已经关闭。虽然它有对象标识符且数据库中存在对应记录,但是已经不再被NHibernate管理。

对象状态

NHibernate提供了对象状态管理的功能,支持三种对象状态:瞬时态(Transient)、持久态(Persistent)、托管态(Detached)。

1.瞬时态(Transient)

对象刚刚创建,还没有来及和ISession关联的状态。这时瞬时对象不会被持久化到数据库中,也不会被赋上标识符。如果不使用则被GC销毁。ISession接口可以将其转换为持久状态。

阅读全文