NHibernate 中的 Tuplizer 是什么

发布于 2024-07-10 23:23:53 字数 67 浏览 9 评论 0原文

我在 NHibernate 中看到一篇文章提到 Tuplizer,有人能为 Tuplizer 提供一个好的定义或参考吗?

I came across a post that mentioned Tuplizer in NHibernate, can anybody provide a good definition or reference for Tuplizer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我偏爱纯白色 2024-07-17 23:23:53

来自 ITuplizer 的源代码

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

如果给定的数据被认为
的作为数据结构,然后
tuplizer 是一个知道如何做的东西
至:

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

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

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

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

Fabio Maulo 的话< /a>:

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

您可以使用自定义 tuplizer 执行以下操作:

From ITuplizer's source code:

A tuplizer defines the contract for
things which know how to manage a
particular representation of a piece
of data, given that representation's
EntityMode (the entity-mode
essentially defining which
representation).

If that given piece of data is thought
of as a data structure, then a
tuplizer is the thing which knows how
to:

  • create such a data structure
    appropriately
  • extract values from
    and inject values into such a data
    structure

For example, a given piece of data
might be represented as a POCO class.
Here, it's representation and
entity-mode is POCO. Well a tuplizer
for POCO entity-modes would know how
to:

  • create the data structure by
    calling the POCO's constructor
  • extract and inject values through
    getters/setter, or by direct field
    access, etc

That same piece of data
might also be represented as a DOM
structure, using the tuplizer
associated with the XML entity-mode,
which would generate instances of
XmlElement as the data structure and
know how to access the values as
either nested XmlElements or as
XmlAttributes.

In the words of Fabio Maulo:

The tuplizer defines how to transform a Property-Value to its persistent representation, and viceversa a Column-Value to its in-memory representation, and the EntityMode defines which tuplizer is in use.

Some things you can do with custom tuplizers:

倚栏听风 2024-07-17 23:23:53

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

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

Python 最著名的是对元组的一流支持,尽管其他一些语言也能做到这一点 (F#)

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

当然!

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

Well, it might help to understand what a tuple is, first:

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

Python is most notable for having first class support for Tuples, though some other languages do as well (F#)

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

and of course!

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

陌生 2024-07-17 23:23:53

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 对组件做同样的事情。

org.hibernate.tuple.Tuplizer, and its sub-interfaces, are responsible for managing
a particular representation of a piece of data given that representation's
org.hibernate.EntityMode. If a given piece of data is thought of as a data structure, then a
tuplizer is the thing that knows how to create such a data structure and how to extract values
from and inject values into such a data structure. For example, for the POJO entity mode, the
corresponding tuplizer knows how create the POJO through its constructor. It also knows how to
access the POJO properties using the defined property accessors.
There are two high-level types of Tuplizers, represented by the
org.hibernate.tuple.entity.EntityTuplizer and
org.hibernate.tuple.component.ComponentTuplizer interfaces. EntityTuplizers are
responsible for managing the above mentioned contracts in regards to entities, while
ComponentTuplizers do the same for components.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文