什么是NHibernate中的Tuplizer

时间:2008-12-24 12:12:27

标签: nhibernate tuplizer

我在NHibernate中发现了一个提到Tuplizer的帖子,有人能为Tuplizer提供一个好的定义或参考吗?

3 个答案:

答案 0 :(得分:6)

来自ITuplizer's source code

  

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

     

如果想到那条给定的数据   作为数据结构,然后是   tuplizer是知道如何的东西   到:

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

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

     
      
  • 通过创建数据结构   调用POCO的构造函数
  •   
  • 通过提取和注入值   getters / setter,或直接领域   访问等
  •   
     

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

words of Fabio Maulo

  

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

当然!

https://stackoverflow.com/search?q=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对组件也这样做。