我在NHibernate中发现了一个提到Tuplizer的帖子,有人能为Tuplizer提供一个好的定义或参考吗?
答案 0 :(得分:6)
tuplizer定义合同 知道如何管理的事情 一件作品的特殊表现 数据,给定表示 EntityMode(实体模式 基本上定义哪个 表示)。
如果想到那条给定的数据 作为数据结构,然后是 tuplizer是知道如何的东西 到:
- 创建这样的数据结构 适当地
- 从中提取值 并将值注入此类数据中 结构
例如,给定的数据 可以表示为POCO类。 在这里,它代表和 实体模式是POCO。好吧一个tuplizer 对于POCO实体模式会知道如何 到:
- 通过创建数据结构 调用POCO的构造函数
- 通过提取和注入值 getters / setter,或直接领域 访问等
同一条数据 也可以表示为DOM 结构,使用tuplizer 与XML实体模式相关联, 这将生成的实例 XmlElement作为数据结构和 知道如何访问值 嵌套的XmlElements或as XMLATTRIBUTES。
tuplizer定义了如何将Property-Value转换为其持久表示,反之亦然将Column-Value转换为其内存中表示,而EntityMode定义了正在使用的tuplizer。
使用自定义tuplizer可以做的一些事情:
答案 1 :(得分:1)
嗯,首先要了解元组是什么有帮助,首先:
http://en.wikipedia.org/wiki/Tuple
Python最值得注意的是为元组提供一流的支持,尽管其他一些语言也支持(F#)
http://diveintopython3.ep.io/native-datatypes.html#tuples
当然!
答案 2 :(得分:0)
org.hibernate.tuple.Tuplizer 及其子接口负责管理 给定表示的一个数据的特定表示 的 org.hibernate.EntityMode 即可。如果给定的数据被认为是数据结构,那么a tuplizer知道如何创建这样的数据结构以及如何提取值 从这些数据结构中注入并注入值。例如,对于POJO实体模式, 相应的tuplizer知道如何通过其构造函数创建POJO。它也知道如何 使用定义的属性访问器访问POJO属性。 有两种高级类型的Tuplizer,由表示 org.hibernate.tuple.entity.EntityTuplizer 和 org.hibernate.tuple.component.ComponentTuplizer 接口。 EntityTuplizers是 负责管理上述与实体有关的合同,同时 ComponentTuplizers对组件也这样做。