2.4.12. Tuplizer
org.hibernate.tuple.Tuplizer
, and its sub-interfaces, are responsible for managing a particular representation of a piece of data, given that representation's org.hibernate.EntityMode
. If a given piece of data is thought of as a data structure, then a tuplizer is the thing which knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the correpsonding tuplizer knows how create the POJO through its constructor and how to access the POJO properties using the defined property accessors. There are two high-level types of Tuplizers, represented by the org.hibernate.tuple.EntityTuplizer
and org.hibernate.tuple.ComponentTuplizer
interfaces. EntityTuplizers are responsible for managing the above mentioned contracts in regards to entities, while ComponentTuplizers
do the same for components. Check the Hibernate reference documentation for more information.
To define tuplixer in annotations, simply use the
@Tuplizer
annotation on the according element
@Entity @Tuplizer(impl = DynamicEntityTuplizer.class) public interface Cuisine { @Id @GeneratedValue public Long getId(); public void setId(Long id); public String getName(); public void setName(String name); @Tuplizer(impl = DynamicComponentTuplizer.class) public Country getCountry(); public void setCountry(Country country); }