2008-12-24 14 views

Respuesta

6

De ITuplizer's source code:

Un tuplizer define el contrato para lo que saben cómo manejar una representación particular de una pieza de los datos , teniendo en cuenta de que la representación EntityMode (la entidad -mode esencialmente definiendo qué representación de ).

Si ese pedazo dado de datos se cree como una estructura de datos, a continuación, un tuplizer es lo que sabe a:

  • crear una estructura de datos adecuadamente
  • valores de extracto de e inyectar valores en un datos tales estructura

Por ejemplo, un dado la pieza de datos podría representarse como una clase POCO. Aquí, su representación y entidad-modo es POCO. Así un tuplizer del Poco entidad modos sabría cómo a:

  • crear la estructura de datos por llamar al constructor de la POCO
  • extracto y se inyectan valores a través de getters/definidor, o por campo directo acceso , etc

Esa misma pieza de datos también puede ser representada como una estructura DOM , utilizando el w tuplizer asociado ith XML entity-mode, que generaría instancias de XmlElement como la estructura de datos y sabe cómo acceder a los valores como anidados XmlElements o XmlAttributes.

En el words of Fabio Maulo:

El tuplizer define cómo transformar una propiedad de valor a su representación persistente, y viceversa una columna de valor a su representación en memoria, y la EntityMode define qué tuplizer Está en uso.

Algunas cosas que puede hacer con tuplizers personalizados:

+0

¿Soy el único que piensa que la verborrea anterior solo se puede entender realmente DESPUÉS de que ya se sabe lo que es un tuplizador? – rapt

+0

@rapt es un poco difícil de asimilar, pero echa un vistazo a los ejemplos. –

0

org.hibernate.tuple.Tuplizer, y sus subinterfaces, son responsables de administrar una representación particular de un dato dado que representa org.hibernate.EntityMode. Si una determinada pieza de datos se considera una estructura de datos, entonces un tuplizador es lo que sabe cómo crear dicha estructura de datos y cómo extraer los valores e inyectar valores en dicha estructura de datos. Por ejemplo, para el modo de entidad POJO, el tuplizador correspondiente sabe cómo crear el POJO a través de su constructor. También sabe cómo acceder a las propiedades de POJO utilizando los descriptores de acceso de propiedad definidos. Hay dos tipos de alto nivel de Tuplizers, representados por el org.hibernate.tuple.entity.EntityTuplizer y org.hibernate.tuple.component.ComponentTuplizer interfaces. EntityTuplizers son responsables de la gestión de los contratos mencionados anteriormente en lo que respecta a las entidades, mientras que ComponentTuplizers hacen lo mismo para los componentes.

Cuestiones relacionadas