NHibernate中持久性模型的确切含义是啥?

Posted

技术标签:

【中文标题】NHibernate中持久性模型的确切含义是啥?【英文标题】:What's the exact meaning of Persistence model in NHibernate?NHibernate中持久性模型的确切含义是什么? 【发布时间】:2012-06-24 21:50:48 【问题描述】:

我是 Orm 工作的新手,我遇到了这个问题,即 NHibernate 中的 持久性模型 以及 transient 对象和 之间的区别>持久的对象。

【问题讨论】:

【参考方案1】:

以下是来自nhibernate 的documentation 的定义:

持久对象和集合

包含持久状态的短寿命单线程对象和 业务功能。这些可能是普通的 POCO,唯一的特殊 关于他们的事情是他们目前与(确切地说 一)ISession。一旦会话关闭,它们将被分离 并且可以在任何应用层免费使用(例如直接作为数据 将对象传输到演示文稿和从演示文稿传输)。

瞬态对象和集合

当前未关联的持久类的实例 一个会话。它们可能已由应用程序实例化,而不是 (然而)持续存在或者它们可能已经被一个封闭的实例化了 会话。

在instance states:

一个持久类的实例可能在三个不同的之一中 状态,它们是针对持久性上下文定义的。这 NHibernate ISession 对象是持久化上下文:

瞬态

该实例不是,也从未与任何 持久性上下文。它没有持久的身份(主键 价值)。

持久

该实例当前与持久性上下文相关联。它 有一个持久的身份(主键值),也许,一个 数据库中对应的行。对于特定的持久性 在上下文中,NHibernate 保证持久标识是等价的 到 CLR 标识(对象的内存中位置)。

分离

该实例曾经与持久性上下文相关联,但 上下文已关闭,或实例已序列化到另一个进程。 它有一个持久的身份,也许,在 数据库。对于分离的实例,NHibernate 不保证 持久身份和CLR身份之间的关系。

【讨论】:

以上是关于NHibernate中持久性模型的确切含义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

IFS=$'\n' 的确切含义是啥?

JPA @Entity 注解的确切含义是啥?

编程中“厨房水槽”的确切含义是啥?

在使用 NHibernate 进行持久性的项目中测试数据模型

git中“我们的”和“他们的”的确切含义是啥?

Angular 2\TypeScript 中 export 关键字的确切含义是啥?