Interface EntityTuplizer

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

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

    EntityTuplizer implementations should have the following constructor signatures: (org.hibernate.tuple.entity.EntityMetamodel, org.hibernate.mapping.PersistentClass) (org.hibernate.tuple.entity.EntityMetamodel, org.hibernate.metamodel.binding.EntityBinding)

    • Method Detail

      • getEntityMode

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

        java.lang.Object instantiate​(java.io.Serializable id,
                                     SharedSessionContractImplementor 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

        @Deprecated
        java.io.Serializable getIdentifier​(java.lang.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

        java.io.Serializable getIdentifier​(java.lang.Object entity,
                                           SharedSessionContractImplementor 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​(java.lang.Object entity,
                           java.io.Serializable id,
                           SharedSessionContractImplementor 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

        @Deprecated
        void resetIdentifier​(java.lang.Object entity,
                             java.io.Serializable currentId,
                             java.lang.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​(java.lang.Object entity,
                             java.io.Serializable currentId,
                             java.lang.Object currentVersion,
                             SharedSessionContractImplementor 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

        java.lang.Object getVersion​(java.lang.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 - Indicates a problem accessing the version property
      • setPropertyValue

        void setPropertyValue​(java.lang.Object entity,
                              int i,
                              java.lang.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 - Indicates a problem access the property
      • setPropertyValue

        void setPropertyValue​(java.lang.Object entity,
                              java.lang.String propertyName,
                              java.lang.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 - Indicates a problem access the property
      • getPropertyValuesToInsert

        java.lang.Object[] getPropertyValuesToInsert​(java.lang.Object entity,
                                                     java.util.Map mergeMap,
                                                     SharedSessionContractImplementor 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 result set is being made.
        Returns:
        The insertable property values.
        Throws:
        HibernateException - Indicates a problem access the properties
      • getPropertyValue

        java.lang.Object getPropertyValue​(java.lang.Object entity,
                                          java.lang.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 - Indicates a problem access the property
      • afterInitialize

        void afterInitialize​(java.lang.Object entity,
                             SharedSessionContractImplementor session)
        Called just after the entities properties have been initialized.
        Parameters:
        entity - The entity being initialized.
        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

        java.lang.Object createProxy​(java.io.Serializable id,
                                     SharedSessionContractImplementor 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.
      • determineConcreteSubclassEntityName

        java.lang.String determineConcreteSubclassEntityName​(java.lang.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 inheritance 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 meaning 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 inheritance 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.