Interface NaturalIdResolutions

  • All Known Implementing Classes:
    NaturalIdResolutionsImpl

    public interface NaturalIdResolutions
    Manages the cached resolutions related to natural-id (to and from identifier)
    • Field Detail

      • INVALID_NATURAL_ID_REFERENCE

        static final Object INVALID_NATURAL_ID_REFERENCE
        Marker reference used to indicate that a given natural-id is invalid
    • Method Detail

      • cacheResolution

        boolean cacheResolution​(Object id,
                                Object naturalId,
                                EntityMappingType entityDescriptor)
        Caches a natural-id-to-identifier resolution. Handles both the local (transactional) and shared (second-level) caches.
        Returns:
        true if a new entry was actually added; false otherwise.
      • removeResolution

        Object removeResolution​(Object id,
                                Object naturalId,
                                EntityMappingType entityDescriptor)
        Removes a natural-id-to-identifier resolution.

        Handles both the local (transactional) and shared (second-level) caches.

        Returns:
        The cached values, if any. May be different from incoming values.
      • manageLocalResolution

        void manageLocalResolution​(Object id,
                                   Object naturalIdValue,
                                   EntityMappingType entityDescriptor,
                                   CachedNaturalIdValueSource source)
        Ensures that the necessary local cross-reference exists. Specifically, this only effects the persistence-context cache, not the L2 cache
      • removeLocalResolution

        Object removeLocalResolution​(Object id,
                                     Object naturalId,
                                     EntityMappingType entityDescriptor)
        Removes any local cross-reference, returning the previously cached value if one.

        Again, this only effects the persistence-context cache, not the L2 cache

      • removeSharedResolution

        void removeSharedResolution​(Object id,
                                    Object naturalId,
                                    EntityMappingType entityDescriptor)
        Removes any cross-reference from the L2 cache
      • findCachedNaturalIdById

        Object findCachedNaturalIdById​(Object id,
                                       EntityMappingType entityDescriptor)
        Find the cached natural-id for the given identifier
        Returns:
        The cross-referenced natural-id values or null
      • getCachedPkResolutions

        Collection<?> getCachedPkResolutions​(EntityMappingType entityDescriptor)
        Find all the locally cached primary key cross-reference entries for the given entity.
        Returns:
        The primary keys
      • handleSynchronization

        void handleSynchronization​(Object id,
                                   Object entity,
                                   EntityMappingType entityDescriptor)
        Part of the "load synchronization process".

        Responsible for maintaining cross-reference entries when natural-id values were found to have changed.

        Also responsible for tracking the old values as no longer valid until the next flush because otherwise going to the database would just re-pull the old values as valid. In this responsibility, cleanupFromSynchronizations() is the inverse process called after flush to clean up those entries.

        See Also:
        cleanupFromSynchronizations()