Interface EntityTuplizer

All Superinterfaces:
Tuplizer
All Known Implementing Classes:
AbstractEntityTuplizer, Dom4jEntityTuplizer, DynamicMapEntityTuplizer, PojoEntityTuplizer

public interface EntityTuplizer extends Tuplizer
Defines further responsibilities reagarding tuplization based on a mapped entity.

EntityTuplizer implementations should have the following constructor signature: (org.hibernate.tuple.entity.EntityMetamodel, org.hibernate.mapping.PersistentClass)

  • Method Details

    • getEntityMode

      EntityMode getEntityMode()
      Return the entity-mode handled by this tuplizer instance.
      Returns:
      The entity-mode
    • instantiate

      Object instantiate(Serializable id) throws HibernateException
      Create an entity instance initialized with the given identifier.
      Parameters:
      id - The identifier value for the entity to be instantiated.
      Returns:
      The instantiated entity.
      Throws:
      HibernateException
    • instantiate

      Object instantiate(Serializable id, SessionImplementor session)
      Create an entity instance initialized with the given identifier.
      Parameters:
      id - The identifier value for the entity to be instantiated.
      session - The session from which is requests originates
      Returns:
      The instantiated entity.
    • getIdentifier

      Serializable getIdentifier(Object entity) throws HibernateException
      Extract the identifier value from the given entity.
      Parameters:
      entity - The entity from which to extract the identifier value.
      Returns:
      The identifier value.
      Throws:
      HibernateException - If the entity does not define an identifier property, or an error occurs accessing its value.
    • getIdentifier

      Serializable getIdentifier(Object entity, SessionImplementor session)
      Extract the identifier value from the given entity.
      Parameters:
      entity - The entity from which to extract the identifier value.
      session - The session from which is requests originates
      Returns:
      The identifier value.
    • setIdentifier

      void setIdentifier(Object entity, Serializable id) throws HibernateException
      Inject the identifier value into the given entity.

      Has no effect if the entity does not define an identifier property
      Parameters:
      entity - The entity to inject with the identifier value.
      id - The value to be injected as the identifier.
      Throws:
      HibernateException
    • setIdentifier

      void setIdentifier(Object entity, Serializable id, SessionImplementor session)
      Inject the identifier value into the given entity.

      Has no effect if the entity does not define an identifier property
      Parameters:
      entity - The entity to inject with the identifier value.
      id - The value to be injected as the identifier.
      session - The session from which is requests originates
    • resetIdentifier

      void resetIdentifier(Object entity, Serializable currentId, Object currentVersion)
      Inject the given identifier and version into the entity, in order to "roll back" to their original values.
      Parameters:
      entity - The entity for which to reset the id/version values
      currentId - The identifier value to inject into the entity.
      currentVersion - The version value to inject into the entity.
    • resetIdentifier

      void resetIdentifier(Object entity, Serializable currentId, Object currentVersion, SessionImplementor session)
      Inject the given identifier and version into the entity, in order to "roll back" to their original values.
      Parameters:
      entity - The entity for which to reset the id/version values
      currentId - The identifier value to inject into the entity.
      currentVersion - The version value to inject into the entity.
      session - The session from which the request originated
    • getVersion

      Object getVersion(Object entity) throws HibernateException
      Extract the value of the version property from the given entity.
      Parameters:
      entity - The entity from which to extract the version value.
      Returns:
      The value of the version property, or null if not versioned.
      Throws:
      HibernateException
    • setPropertyValue

      void setPropertyValue(Object entity, int i, Object value) throws HibernateException
      Inject the value of a particular property.
      Parameters:
      entity - The entity into which to inject the value.
      i - The property's index.
      value - The property value to inject.
      Throws:
      HibernateException
    • setPropertyValue

      void setPropertyValue(Object entity, String propertyName, Object value) throws HibernateException
      Inject the value of a particular property.
      Parameters:
      entity - The entity into which to inject the value.
      propertyName - The name of the property.
      value - The property value to inject.
      Throws:
      HibernateException
    • getPropertyValuesToInsert

      Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session) throws HibernateException
      Extract the values of the insertable properties of the entity (including backrefs)
      Parameters:
      entity - The entity from which to extract.
      mergeMap - a map of instances being merged to merged instances
      session - The session in which the resuest is being made.
      Returns:
      The insertable property values.
      Throws:
      HibernateException
    • getPropertyValue

      Object getPropertyValue(Object entity, String propertyName) throws HibernateException
      Extract the value of a particular property from the given entity.
      Parameters:
      entity - The entity from which to extract the property value.
      propertyName - The name of the property for which to extract the value.
      Returns:
      The current value of the given property on the given entity.
      Throws:
      HibernateException
    • afterInitialize

      void afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
      Called just after the entities properties have been initialized.
      Parameters:
      entity - The entity being initialized.
      lazyPropertiesAreUnfetched - Are defined lazy properties currently unfecthed
      session - The session initializing this entity.
    • hasProxy

      boolean hasProxy()
      Does this entity, for this mode, present a possibility for proxying?
      Returns:
      True if this tuplizer can generate proxies for this entity.
    • createProxy

      Object createProxy(Serializable id, SessionImplementor session) throws HibernateException
      Generates an appropriate proxy representation of this entity for this entity-mode.
      Parameters:
      id - The id of the instance for which to generate a proxy.
      session - The session to which the proxy should be bound.
      Returns:
      The generate proxies.
      Throws:
      HibernateException - Indicates an error generating the proxy.
    • isLifecycleImplementor

      boolean isLifecycleImplementor()
      Does the class managed by this tuplizer implement the Lifecycle interface.
      Returns:
      True if the Lifecycle interface is implemented; false otherwise.
    • isValidatableImplementor

      boolean isValidatableImplementor()
      Does the class managed by this tuplizer implement the Validatable interface.
      Returns:
      True if the Validatable interface is implemented; false otherwise.
    • getConcreteProxyClass

      Class getConcreteProxyClass()
      Returns the java class to which generated proxies will be typed.

      todo : look at fully encapsulating PersistenceContext.narrowProxy(java.lang.Object, org.hibernate.persister.entity.EntityPersister, org.hibernate.engine.EntityKey, java.lang.Object) here, since that is the only external use of this method

      Returns:
      The java class to which generated proxies will be typed
    • hasUninitializedLazyProperties

      boolean hasUninitializedLazyProperties(Object entity)
      Does the given entity instance have any currently uninitialized lazy properties?
      Parameters:
      entity - The entity to be check for uninitialized lazy properties.
      Returns:
      True if uninitialized lazy properties were found; false otherwise.
    • isInstrumented

      boolean isInstrumented()
      Is it an instrumented POJO?
    • getEntityNameResolvers

      EntityNameResolver[] getEntityNameResolvers()
      Get any EntityNameResolvers associated with this Tuplizer.
      Returns:
      The associated resolvers. May be null or empty.
    • determineConcreteSubclassEntityName

      String determineConcreteSubclassEntityName(Object entityInstance, SessionFactoryImplementor factory)
      Given an entity instance, determine the most appropriate (most targeted) entity-name which represents it. This is called in situations where we already know an entity name for the given entityInstance; we are being asked to determine if there is a more appropriate entity-name to use, specifically within an inheritence hierarchy.

      For example, consider a case where a user calls session.update( "Animal", cat );. Here, the user has explicitly provided Animal as the entity-name. However, they have passed in an instance of Cat which is a subclass of Animal. In this case, we would return Cat as the entity-name.

      null may be returned from calls to this method. The meaining of null in that case is assumed to be that we should use whatever explicit entity-name the user provided (Animal rather than Cat in the example above).

      Parameters:
      entityInstance - The entity instance.
      factory - Reference to the SessionFactory.
      Returns:
      The most appropriate entity name to use.
      Throws:
      HibernateException - If we are unable to determine an entity-name within the inheritence hierarchy.
    • getIdentifierGetter

      Getter getIdentifierGetter()
      Retrieve the getter for the identifier property. May return null.
      Returns:
      The getter for the identifier property.
    • getVersionGetter

      Getter getVersionGetter()
      Retrieve the getter for the version property. May return null.
      Returns:
      The getter for the version property.