Class AbstractSaveEventListener<C>

    • Constructor Detail

      • AbstractSaveEventListener

        public AbstractSaveEventListener()
    • Method Detail

      • saveWithRequestedId

        protected Object saveWithRequestedId​(Object entity,
                                             Object requestedId,
                                             String entityName,
                                             C context,
                                             EventSource source)
        Prepares the save call using the given requested id.
        Parameters:
        entity - The entity to be saved.
        requestedId - The id to which to associate the entity.
        entityName - The name of the entity being saved.
        context - Generally cascade-specific information.
        source - The session which is the source of this save event.
        Returns:
        The id used to save the entity.
      • saveWithGeneratedId

        protected Object saveWithGeneratedId​(Object entity,
                                             String entityName,
                                             C context,
                                             EventSource source,
                                             boolean requiresImmediateIdAccess)
        Prepares the save call using a newly generated id.
        Parameters:
        entity - The entity to be saved
        entityName - The entity-name for the entity to be saved
        context - Generally cascade-specific information.
        source - The session which is the source of this save event.
        requiresImmediateIdAccess - does the event context require access to the identifier immediately after execution of this method (if not, post-insert style id generators may be postponed if we are outside a transaction).
        Returns:
        The id used to save the entity; may be null depending on the type of id generator used and the requiresImmediateIdAccess value
      • performSave

        protected Object performSave​(Object entity,
                                     Object id,
                                     EntityPersister persister,
                                     boolean useIdentityColumn,
                                     C context,
                                     EventSource source,
                                     boolean delayIdentityInserts)
        Prepares the save call by checking the session caches for a pre-existing entity and performing any lifecycle callbacks.
        Parameters:
        entity - The entity to be saved.
        id - The id by which to save the entity.
        persister - The entity's persister instance.
        useIdentityColumn - Is an identity column being used?
        context - Generally cascade-specific information.
        source - The session from which the event originated.
        delayIdentityInserts - Should the identity insert be delayed?
        Returns:
        The id used to save the entity; may be null depending on the type of id generator used and on delayIdentityInserts
      • performSaveOrReplicate

        protected Object performSaveOrReplicate​(Object entity,
                                                EntityKey key,
                                                EntityPersister persister,
                                                boolean useIdentityColumn,
                                                C context,
                                                EventSource source,
                                                boolean delayIdentityInserts)
        Performs all the actual work needed to save an entity (well to get the save moved to the execution queue).
        Parameters:
        entity - The entity to be saved
        key - The id to be used for saving the entity (or null, in the case of identity columns)
        persister - The entity's persister instance.
        useIdentityColumn - Should an identity column be used for id generation?
        context - Generally cascade-specific information.
        source - The session which is the source of the current event.
        delayIdentityInserts - Should the identity insert be delayed?
        Returns:
        The id used to save the entity; may be null depending on the type of id generator used and the requiresImmediateIdAccess value
      • isVersionIncrementDisabled

        protected boolean isVersionIncrementDisabled()
        After the save, will te version number be incremented if the instance is modified?
        Returns:
        True if the version will be incremented on an entity change after save; false otherwise.
      • substituteValuesIfNecessary

        protected boolean substituteValuesIfNecessary​(Object entity,
                                                      Object id,
                                                      Object[] values,
                                                      EntityPersister persister,
                                                      SessionImplementor source)
        Perform any property value substitution that is necessary (interceptor callback, version initialization...)
        Parameters:
        entity - The entity
        id - The entity identifier
        values - The snapshot entity state
        persister - The entity persister
        source - The originating session
        Returns:
        True if the snapshot state changed such that reinjection of the values into the entity is required.
      • cascadeBeforeSave

        protected void cascadeBeforeSave​(EventSource source,
                                         EntityPersister persister,
                                         Object entity,
                                         C context)
        Handles the calls needed to perform pre-save cascades for the given entity.
        Parameters:
        source - The session from which the save event originated.
        persister - The entity's persister instance.
        entity - The entity to be saved.
        context - Generally cascade-specific data
      • cascadeAfterSave

        protected void cascadeAfterSave​(EventSource source,
                                        EntityPersister persister,
                                        Object entity,
                                        C context)
        Handles calls needed to perform post-save cascades.
        Parameters:
        source - The session from which the event originated.
        persister - The entity's persister instance.
        entity - The entity being saved.
        context - Generally cascade-specific data