【问题标题】:What is Tuplizer in NHibernateNHibernate 中的 Tuplizer 是什么
【发布时间】:2010-09-28 07:50:01
【问题描述】:

我在 NHibernate 中看到一篇提到 Tuplizer 的帖子,任何人都可以为 Tuplizer 提供一个好的定义或参考吗?

【问题讨论】:

    标签: nhibernate tuplizer


    【解决方案1】:

    来自ITuplizer's source code

    tuplizer 定义了合约 知道如何管理的事情 一件作品的特殊表现 数据,鉴于该表示的 EntityMode(实体模式 基本上定义了哪个 代表)。

    如果考虑到给定的数据 of 作为数据结构,然后是 tuplizer 是知道如何 到:

    • 创建这样的数据结构 适当的
    • 从中提取值 并将值注入这样的数据 结构

    例如,给定的一段数据 可以表示为 POCO 类。 在这里,它的代表和 实体模式是 POCO。嗯,一个tuplizer 对于 POCO 实体模式会知道如何 到:

    • 通过以下方式创建数据结构 调用 POCO 的构造函数
    • 通过以下方式提取和注入值 getter/setter,或通过直接字段 访问等

    同样的数据 也可以表示为 DOM 结构,使用 tuplizer 与 XML 实体模式相关联, 这将产生实例 XmlElement 作为数据结构和 知道如何访问这些值 嵌套的 XmlElements 或作为 XmlAttributes。

    words of Fabio Maulo

    tuplizer 定义如何将 Property-Value 转换为其持久表示,反之亦然,将 Column-Value 转换为其内存表示,EntityMode 定义正在使用的 tuplizer。

    您可以使用自定义 tuplizer 做一些事情:

    【讨论】:

    • 只有我一个人认为只有在知道 tuplizer 是什么之后才能真正理解上述措辞?
    • @rapt 有点难以理解,但请查看示例。
    【解决方案2】:

    嗯,首先了解什么是元组可能会有所帮助:

    http://en.wikipedia.org/wiki/Tuple

    Python 最引人注目的是对元组的一流支持,尽管其他一些语言也支持 (F#)

    http://diveintopython3.ep.io/native-datatypes.html#tuples

    当然!

    https://stackoverflow.com/search?q=tuples

    【讨论】:

      【解决方案3】:

      org.hibernate.tuple.Tuplizer及其子接口负责管理 给定该表示的一段数据的特定表示 org.hibernate.EntityMode。如果给定的数据被认为是一个数据结构,那么 tuplizer 知道如何创建这样的数据结构以及如何提取值 从并将值注入到这样的数据结构中。例如,对于 POJO 实体模式, 相应的 tuplizer 知道如何通过其构造函数创建 POJO。它也知道如何 使用定义的属性访问器访问 POJO 属性。 有两种高级类型的 Tuplizer,由 org.hibernate.tuple.entity.EntityTuplizerorg.hibernate.tuple.component.ComponentTuplizer 接口。 EntityTuplizer 是 负责管理上述与实体有关的合同,同时 ComponentTuplizers 对组件做同样的事情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2011-04-16
        • 1970-01-01
        • 2011-02-10
        • 2011-09-17
        • 1970-01-01
        相关资源
        最近更新 更多