Что такое Tuplizer в NHibernate - PullRequest
       32

Что такое Tuplizer в NHibernate

7 голосов
/ 24 декабря 2008

Я наткнулся на пост, в котором упоминается Tuplizer в NHibernate, кто-нибудь может дать хорошее определение или ссылку на Tuplizer?

Ответы [ 3 ]

6 голосов
/ 15 мая 2010

Из Исходный код ITuplizer :

Туплизер определяет контракт на вещи, которые знают, как управлять конкретное представление произведения данных, учитывая, что представление EntityMode (режим объекта по существу определяя, какие представление).

Если эта часть данных считается в качестве структуры данных, то туплизер это вещь которая умеет чтобы:

  • создать такую ​​структуру данных соответственно
  • извлечение значений из и ввести значения в такие данные структура

Например, данный фрагмент данных может быть представлен как класс POCO. Здесь это представление и Режим сущности - это POCO. Ну туплизер для режимов объекта POCO будет знать, как чтобы:

  • создать структуру данных вызов конструктора POCO
  • извлекать и вводить значения через геттеры / сеттеры или по прямому полю доступ и т. д.

тот же кусок данных также может быть представлен как DOM структура, используя туплизер связанный с режимом сущностей XML, который будет генерировать случаи XmlElement в качестве структуры данных и знать, как получить доступ к значениям как либо вложенные XmlElements, либо как XmlAttributes.

В словах Фабио Мауло :

Tuplizer определяет, как преобразовать Property-Value в его постоянное представление, и наоборот, Column-Value в его представление в памяти, а EntityMode определяет, какой tuplizer используется.

Некоторые вещи, которые вы можете делать с пользовательскими туплизаторами:

1 голос
/ 24 декабря 2008

Ну, во-первых, это может помочь понять, что такое кортеж:

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

Python наиболее известен тем, что имеет поддержку первого класса для кортежей, хотя некоторые другие языки также поддерживают (F #)

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

и конечно!

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

0 голосов
/ 20 февраля 2017

org.hibernate.tuple.Tuplizer и его подчиненные интерфейсы отвечают за управление конкретное представление части данных с учетом этого представления org.hibernate.EntityMode . Если данный фрагмент данных рассматривается как структура данных, то Tuplizer - это то, что знает, как создать такую ​​структуру данных и как извлечь значения. из и вводить значения в такую ​​структуру данных. Например, для режима объекта POJO, Соответствующий туплизер знает, как создать POJO через его конструктор. Он также знает, как получить доступ к свойствам POJO, используя определенные средства доступа к свойствам. Существует два типа Tuplizer высокого уровня, представленных org.hibernate.tuple.entity.EntityTuplizer и org.hibernate.tuple.component.ComponentTuplizer интерфейсы. EntityTuplizer являются несет ответственность за управление вышеуказанными договорами в отношении юридических лиц, в то время как ComponentTuplizer делает то же самое для компонентов.

...