【发布时间】:2010-09-28 07:50:01
【问题描述】:
我在 NHibernate 中看到一篇提到 Tuplizer 的帖子,任何人都可以为 Tuplizer 提供一个好的定义或参考吗?
【问题讨论】:
标签: nhibernate tuplizer
我在 NHibernate 中看到一篇提到 Tuplizer 的帖子,任何人都可以为 Tuplizer 提供一个好的定义或参考吗?
【问题讨论】:
标签: nhibernate tuplizer
tuplizer 定义了合约 知道如何管理的事情 一件作品的特殊表现 数据,鉴于该表示的 EntityMode(实体模式 基本上定义了哪个 代表)。
如果考虑到给定的数据 of 作为数据结构,然后是 tuplizer 是知道如何 到:
- 创建这样的数据结构 适当的
- 从中提取值 并将值注入这样的数据 结构
例如,给定的一段数据 可以表示为 POCO 类。 在这里,它的代表和 实体模式是 POCO。嗯,一个tuplizer 对于 POCO 实体模式会知道如何 到:
- 通过以下方式创建数据结构 调用 POCO 的构造函数
- 通过以下方式提取和注入值 getter/setter,或通过直接字段 访问等
同样的数据 也可以表示为 DOM 结构,使用 tuplizer 与 XML 实体模式相关联, 这将产生实例 XmlElement 作为数据结构和 知道如何访问这些值 嵌套的 XmlElements 或作为 XmlAttributes。
tuplizer 定义如何将 Property-Value 转换为其持久表示,反之亦然,将 Column-Value 转换为其内存表示,EntityMode 定义正在使用的 tuplizer。
您可以使用自定义 tuplizer 做一些事情:
【讨论】:
嗯,首先了解什么是元组可能会有所帮助:
http://en.wikipedia.org/wiki/Tuple
Python 最引人注目的是对元组的一流支持,尽管其他一些语言也支持 (F#)
http://diveintopython3.ep.io/native-datatypes.html#tuples
当然!
【讨论】:
org.hibernate.tuple.Tuplizer及其子接口负责管理 给定该表示的一段数据的特定表示 org.hibernate.EntityMode。如果给定的数据被认为是一个数据结构,那么 tuplizer 知道如何创建这样的数据结构以及如何提取值 从并将值注入到这样的数据结构中。例如,对于 POJO 实体模式, 相应的 tuplizer 知道如何通过其构造函数创建 POJO。它也知道如何 使用定义的属性访问器访问 POJO 属性。 有两种高级类型的 Tuplizer,由 org.hibernate.tuple.entity.EntityTuplizer 和 org.hibernate.tuple.component.ComponentTuplizer 接口。 EntityTuplizer 是 负责管理上述与实体有关的合同,同时 ComponentTuplizers 对组件做同样的事情。
【讨论】: