Interface CollectionPersister

All Known Subinterfaces:
QueryableCollection, SQLLoadableCollection
All Known Implementing Classes:
AbstractCollectionPersister, BasicCollectionPersister, OneToManyPersister

public interface CollectionPersister
A strategy for persisting a collection role. Defines a contract between the persistence strategy and the actual persistent collection framework and session. Does not define operations that are required for querying collections, or loading by outer join.

Implements persistence of a collection instance while the instance is referenced in a particular role.

This class is highly coupled to the PersistentCollection hierarchy, since double dispatch is used to load and update collection elements.

May be considered an immutable view of the mapping object
See Also:
  • Method Details

    • initialize

      void initialize(Serializable key, SessionImplementor session) throws HibernateException
      Initialize the given collection with the given key
      Throws:
      HibernateException
    • hasCache

      boolean hasCache()
      Is this collection role cacheable
    • getCacheAccessStrategy

      CollectionRegionAccessStrategy getCacheAccessStrategy()
      Get the cache
    • getCacheEntryStructure

      CacheEntryStructure getCacheEntryStructure()
      Get the cache structure
    • getCollectionType

      CollectionType getCollectionType()
      Get the associated Type
    • getKeyType

      Type getKeyType()
      Get the "key" type (the type of the foreign key)
    • getIndexType

      Type getIndexType()
      Get the "index" type for a list or map (optional operation)
    • getElementType

      Type getElementType()
      Get the "element" type
    • getElementClass

      Class getElementClass()
      Return the element class of an array, or null otherwise
    • readKey

      Object readKey(ResultSet rs, String[] keyAliases, SessionImplementor session) throws HibernateException, SQLException
      Read the key from a row of the JDBC ResultSet
      Throws:
      HibernateException
      SQLException
    • readElement

      Object readElement(ResultSet rs, Object owner, String[] columnAliases, SessionImplementor session) throws HibernateException, SQLException
      Read the element from a row of the JDBC ResultSet
      Throws:
      HibernateException
      SQLException
    • readIndex

      Object readIndex(ResultSet rs, String[] columnAliases, SessionImplementor session) throws HibernateException, SQLException
      Read the index from a row of the JDBC ResultSet
      Throws:
      HibernateException
      SQLException
    • readIdentifier

      Object readIdentifier(ResultSet rs, String columnAlias, SessionImplementor session) throws HibernateException, SQLException
      Read the identifier from a row of the JDBC ResultSet
      Throws:
      HibernateException
      SQLException
    • isPrimitiveArray

      boolean isPrimitiveArray()
      Is this an array or primitive values?
    • isArray

      boolean isArray()
      Is this an array?
    • isOneToMany

      boolean isOneToMany()
      Is this a one-to-many association?
    • isManyToMany

      boolean isManyToMany()
      Is this a many-to-many association? Note that this is mainly a convenience feature as the single persister does not conatin all the information needed to handle a many-to-many itself, as internally it is looked at as two many-to-ones.
    • getManyToManyFilterFragment

      String getManyToManyFilterFragment(String alias, Map enabledFilters)
    • hasIndex

      boolean hasIndex()
      Is this an "indexed" collection? (list or map)
    • isLazy

      boolean isLazy()
      Is this collection lazyily initialized?
    • isInverse

      boolean isInverse()
      Is this collection "inverse", so state changes are not propogated to the database.
    • remove

      void remove(Serializable id, SessionImplementor session) throws HibernateException
      Completely remove the persistent state of the collection
      Throws:
      HibernateException
    • recreate

      void recreate(PersistentCollection collection, Serializable key, SessionImplementor session) throws HibernateException
      (Re)create the collection's persistent state
      Throws:
      HibernateException
    • deleteRows

      void deleteRows(PersistentCollection collection, Serializable key, SessionImplementor session) throws HibernateException
      Delete the persistent state of any elements that were removed from the collection
      Throws:
      HibernateException
    • updateRows

      void updateRows(PersistentCollection collection, Serializable key, SessionImplementor session) throws HibernateException
      Update the persistent state of any elements that were modified
      Throws:
      HibernateException
    • insertRows

      void insertRows(PersistentCollection collection, Serializable key, SessionImplementor session) throws HibernateException
      Insert the persistent state of any new collection elements
      Throws:
      HibernateException
    • getRole

      String getRole()
      Get the name of this collection role (the fully qualified class name, extended by a "property path")
    • getOwnerEntityPersister

      EntityPersister getOwnerEntityPersister()
      Get the persister of the entity that "owns" this collection
    • getIdentifierGenerator

      IdentifierGenerator getIdentifierGenerator()
      Get the surrogate key generation strategy (optional operation)
    • getIdentifierType

      Type getIdentifierType()
      Get the type of the surrogate key
    • hasOrphanDelete

      boolean hasOrphanDelete()
      Does this collection implement "orphan delete"?
    • hasOrdering

      boolean hasOrdering()
      Is this an ordered collection? (An ordered collection is ordered by the initialization operation, not by sorting that happens in memory, as in the case of a sorted collection.)
    • hasManyToManyOrdering

      boolean hasManyToManyOrdering()
    • getCollectionSpaces

      Serializable[] getCollectionSpaces()
      Get the "space" that holds the persistent state
    • getCollectionMetadata

      CollectionMetadata getCollectionMetadata()
    • isCascadeDeleteEnabled

      boolean isCascadeDeleteEnabled()
      Is cascade delete handled by the database-level foreign key constraint definition?
    • isVersioned

      boolean isVersioned()
      Does this collection cause version increment of the owning entity?
    • isMutable

      boolean isMutable()
      Can the elements of this collection change?
    • getNodeName

      String getNodeName()
    • getElementNodeName

      String getElementNodeName()
    • getIndexNodeName

      String getIndexNodeName()
    • postInstantiate

      void postInstantiate() throws MappingException
      Throws:
      MappingException
    • getFactory

    • isAffectedByEnabledFilters

      boolean isAffectedByEnabledFilters(SessionImplementor session)
    • getKeyColumnAliases

      String[] getKeyColumnAliases(String suffix)
      Generates the collection's key column aliases, based on the given suffix.
      Parameters:
      suffix - The suffix to use in the key column alias generation.
      Returns:
      The key column aliases.
    • getIndexColumnAliases

      String[] getIndexColumnAliases(String suffix)
      Generates the collection's index column aliases, based on the given suffix.
      Parameters:
      suffix - The suffix to use in the index column alias generation.
      Returns:
      The key column aliases, or null if not indexed.
    • getElementColumnAliases

      String[] getElementColumnAliases(String suffix)
      Generates the collection's element column aliases, based on the given suffix.
      Parameters:
      suffix - The suffix to use in the element column alias generation.
      Returns:
      The key column aliases.
    • getIdentifierColumnAlias

      String getIdentifierColumnAlias(String suffix)
      Generates the collection's identifier column aliases, based on the given suffix.
      Parameters:
      suffix - The suffix to use in the key column alias generation.
      Returns:
      The key column aliases.
    • isExtraLazy

      boolean isExtraLazy()
    • getSize

      int getSize(Serializable key, SessionImplementor session)
    • indexExists

      boolean indexExists(Serializable key, Object index, SessionImplementor session)
    • elementExists

      boolean elementExists(Serializable key, Object element, SessionImplementor session)
    • getElementByIndex

      Object getElementByIndex(Serializable key, Object index, SessionImplementor session, Object owner)