Me encontré con una publicación que menciona Tuplizer en NHibernate, ¿alguien puede proporcionar una buena definición o referencia para Tuplizer?¿Qué es Tuplizer en NHibernate
Respuesta
Bueno, podría ayudar a entender lo que una tupla es, en primer lugar:
http://en.wikipedia.org/wiki/Tuple
Python es más notable por tener un soporte de primera clase para tuplas, aunque algunos otros lenguajes también (F #)
http://diveintopython3.ep.io/native-datatypes.html#tuples
y por supuesto!
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:
- Remote lazy loading (artículo utiliza Java Hibernate pero los conceptos generales se aplican a NHibernate así)
- Seamlessly mapping/persisting interfaces instead of POCOs
- Mapping/persisting F# records (desde el FunctionalNHibernate project)
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.
- 1. Interceptor NHibernate: ¿Qué es
- 2. ¿Qué es Castle proxy factory en NHibernate?
- 3. ¿Qué es una proyección en NHibernate?
- 4. ¿Qué es la sesión de NHibernate exactamente?
- 5. ¿Qué es NHibernate y por qué debería usarlo?
- 6. ¿Qué hace NHibernate Session.Evict?
- 7. ¿Por qué el control NHibernate AutoFlush es tan costoso?
- 8. NHibernate: propiedad de deshidratación de error - ¿Qué diablos es esto?
- 9. ¿Por qué NHibernate lanza "StaleObjectStateException"?
- 10. ¿Es necesario Proxy Factory en NHibernate?
- 11. ¿Por qué usar Hibernate/nHibernate?
- 12. Latencia NHibernate es muy alta
- 13. ¿Hibernate es peor que NHibernate?
- 14. NHibernate o Fluidez NHibernate?
- 15. ¿Cuál es el negocio de Session.clear() en NHibernate?
- 16. ¿Qué ganas al actualizar NHibernate 1.2?
- 17. NHibernate
- 18. ¿Por qué NHibernate elimina huérfanos primero?
- 19. ¿Qué es una proyección?
- 20. Cuál es la mejor manera de actualizar entidades en nhibernate
- 21. enumeración Mapeo con nhibernate fluidez
- 22. Sindicatos discriminados en NHibernate
- 23. NHibernate SetTimeout en ICriteria
- 24. es nhibernate 3.0 listo para producción
- 25. ¿NHibernate.Spatial es compatible con NHibernate 3.0?
- 26. ¿Por qué es NHibernate Fluent haciendo caso omiso de mi restricción única en un componente?
- 27. NHibernate Guid generador si es nuevo
- 28. ¿Por qué NHibernate no soporta lotes en MySql?
- 29. Proyecciones en NHibernate
- 30. Pregunta estadística en SQL: ¿esto es posible con NHibernate LINQ?
¿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
@rapt es un poco difícil de asimilar, pero echa un vistazo a los ejemplos. –