## org.hibernate.persister.collection
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

Author:
  Gavin King
See Also:
  `QueryableCollection`, `PersistentCollection`

Method Summary
`void` `deleteRows(PersistentCollection collection, Serializable key, SessionImplementor session)` Delete the persistent state of any elements that were removed from the collection
`boolean` `elementExists(Serializable key, Object element, SessionImplementor session)`
`CollectionRegionAccessStrategy` `getCacheAccessStrategy()` Get the cache
`CacheEntryStructure` `getCacheEntryStructure()` Get the cache structure
`CollectionMetadata` `getCollectionMetadata()`
`Serializable[]` `getCollectionSpaces()` Get the "space" that holds the persistent state
`CollectionType` `getCollectionType()` Get the associated `Type`
`Object` `getElementByIndex(Serializable key, Object index, SessionImplementor session, Object owner)`
`Class` `getElementClass()` Return the element class of an array, or null otherwise
`String[]` `getElementColumnAliases(String suffix)` Generates the collection's element column aliases, based on the given suffix.
`String` `getElementNodeName()`
`Type` `getElementType()` Get the "element" type
`SessionFactoryImplementor` `getFactory()`
`String` `getIdentifierColumnAlias(String suffix)` Generates the collection's identifier column aliases, based on the given suffix.
`IdentifierGenerator` `getIdentifierGenerator()` Get the surrogate key generation strategy (optional operation)
`Type` `getIdentifierType()` Get the type of the surrogate key
`String[]` `getIndexColumnAliases(String suffix)` Generates the collection's index column aliases, based on the given suffix.
`String` `getIndexNodeName()`
`Type` `getIndexType()` Get the "index" type for a list or map (optional operation)
`String[]` `getKeyColumnAliases(String suffix)` Generates the collection's key column aliases, based on the given suffix.
`Type` `getKeyType()` Get the "key" type (the type of the foreign key)
`String` `getManyToManyFilterFragment(String alias, Map enabledFilters)`
`String` `getNodeName()`
`EntityPersister` `getOwnerEntityPersister()` Get the persister of the entity that "owns" this collection
`String` `getRole()` Get the name of this collection role (the fully qualified class name, extended by a "property path")
`int` `getSize(Serializable key, SessionImplementor session)`
`boolean` `hasCache()` Is this collection role cacheable
`boolean` `hasIndex()` Is this an "indexed" collection? (list or map)
`boolean` `hasManyToManyOrdering()`
`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.)
`boolean` `hasOrphanDelete()` Does this collection implement "orphan delete"?
`boolean` `indexExists(Serializable key, Object index, SessionImplementor session)`
`void` `initialize(Serializable key, SessionImplementor session)` Initialize the given collection with the given key
`void` `insertRows(PersistentCollection collection, Serializable key, SessionImplementor session)` Insert the persistent state of any new collection elements
`boolean` `isAffectedByEnabledFilters(SessionImplementor session)`
`boolean` `isArray()` Is this an array?
`boolean` `isCascadeDeleteEnabled()` Is cascade delete handled by the database-level foreign key constraint definition?
`boolean` `isExtraLazy()`
`boolean` `isInverse()` Is this collection "inverse", so state changes are not propogated to the database.
`boolean` `isLazy()` Is this collection lazyily initialized?
`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.
`boolean` `isMutable()` Can the elements of this collection change?
`boolean` `isOneToMany()` Is this a one-to-many association?
`boolean` `isPrimitiveArray()` Is this an array or primitive values?
`boolean` `isVersioned()` Does this collection cause version increment of the owning entity?
`void` `postInstantiate()`
`Object` `readElement(ResultSet rs, Object owner, String[] columnAliases, SessionImplementor session)` Read the element from a row of the JDBC `ResultSet`
`Object` `readIdentifier(ResultSet rs, String columnAlias, SessionImplementor session)` Read the identifier from a row of the JDBC `ResultSet`
`Object` `readIndex(ResultSet rs, String[] columnAliases, SessionImplementor session)` Read the index from a row of the JDBC `ResultSet`
`Object` `readKey(ResultSet rs, String[] keyAliases, SessionImplementor session)` Read the key from a row of the JDBC `ResultSet`
`void` `recreate(PersistentCollection collection, Serializable key, SessionImplementor session)` (Re)create the collection's persistent state
`void` `remove(Serializable id, SessionImplementor session)` Completely remove the persistent state of the collection
`void` `updateRows(PersistentCollection collection, Serializable key, SessionImplementor session)` Update the persistent state of any elements that were modified

Method Detail

### 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

    SessionFactoryImplementor 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)

Copyright © 2001-2010 Red Hat, Inc. All Rights Reserved.