Class AbstractCollectionMapper<T>

    • Field Detail

      • collectionClass

        protected final Class<? extends T> collectionClass
      • ordinalInId

        protected final boolean ordinalInId
      • revisionTypeInId

        protected final boolean revisionTypeInId
    • Constructor Detail

      • AbstractCollectionMapper

        protected AbstractCollectionMapper​(Configuration configuration,
                                           CommonCollectionMapperData commonCollectionMapperData,
                                           Class<? extends T> collectionClass,
                                           Class<? extends T> proxyClass,
                                           boolean ordinalInId,
                                           boolean revisionTypeInId)
    • Method Detail

      • getOldCollectionContent

        protected abstract Collection getOldCollectionContent​(Serializable oldCollection)
      • buildCollectionChangeSet

        protected abstract Set<Object> buildCollectionChangeSet​(Object eventCollection,
                                                                Collection collection)
      • mapToMapFromObject

        protected abstract void mapToMapFromObject​(SessionImplementor session,
                                                   Map<String,​Object> idData,
                                                   Map<String,​Object> data,
                                                   Object changed)
        Maps the changed collection element to the given map.
        Parameters:
        idData - Map to which composite-id data should be added.
        data - Where to map the data.
        changed - The changed collection element to map.
      • createIdMap

        protected Map<String,​Object> createIdMap​(int ordinal)
        Creates map for storing identifier data. Ordinal parameter guarantees uniqueness of primary key. Composite primary key cannot contain embeddable properties since they might be nullable.
        Parameters:
        ordinal - Iteration ordinal.
        Returns:
        Map for holding identifier data.
      • mapCollectionChanges

        public List<PersistentCollectionChangeData> mapCollectionChanges​(SessionImplementor session,
                                                                         String referencingPropertyName,
                                                                         PersistentCollection newColl,
                                                                         Serializable oldColl,
                                                                         Object id)
        Description copied from interface: PropertyMapper
        Maps collection changes.
        Parameters:
        session - The current session.
        referencingPropertyName - Name of the field, which holds the collection in the entity.
        newColl - New collection, after updates.
        oldColl - Old collection, before updates.
        id - Id of the object owning the collection.
        Returns:
        List of changes that need to be performed on the persistent store.
      • mapToMapFromEntity

        public boolean mapToMapFromEntity​(SessionImplementor session,
                                          Map<String,​Object> data,
                                          Object newObj,
                                          Object oldObj)
        Description copied from interface: PropertyMapper
        Maps properties to the given map, basing on differences between properties of new and old objects.
        Parameters:
        session - The current session.
        data - Data to map to.
        newObj - New state of the entity.
        oldObj - Old state of the entity.
        Returns:
        True if there are any differences between the states represented by newObj and oldObj.
      • mapModifiedFlagsToMapForCollectionChange

        public void mapModifiedFlagsToMapForCollectionChange​(String collectionPropertyName,
                                                             Map<String,​Object> data)
      • isSame

        protected boolean isSame​(CollectionPersister collectionPersister,
                                 Object oldObject,
                                 Object newObject)
        Checks whether the old collection element and new collection element are the same. By default, this delegates to the collection persister's CollectionPersister.getElementType().
        Parameters:
        collectionPersister - The collection persister.
        oldObject - The collection element from the old persistent collection.
        newObject - The collection element from the new persistent collection.
        Returns:
        true if the two objects are the same, false otherwise.
      • mapToEntityFromMap

        public void mapToEntityFromMap​(EnversService enversService,
                                       Object obj,
                                       Map data,
                                       Object primaryKey,
                                       AuditReaderImplementor versionsReader,
                                       Number revision)
        Description copied from interface: PropertyMapper
        Maps properties from the given map to the given object.
        Parameters:
        enversService - The EnversService.
        obj - Object to map to.
        data - Data to map from.
        primaryKey - Primary key of the object to which we map (for relations)
        versionsReader - VersionsReader for reading relations
        revision - Revision at which the object is read, for reading relations
      • hasPropertiesWithModifiedFlag

        public boolean hasPropertiesWithModifiedFlag()
        Description copied from interface: ModifiedFlagMapperSupport
        Returns whether the associated PropertyMapper has any properties that use the witModifiedFlag feature.
        Returns:
        true if a property uses withModifiedFlag, otherwise false.