## org.hibernate.persister.collection
Class BasicCollectionPersister

    java.lang.Object
      org.hibernate.persister.collection.AbstractCollectionPersister
          org.hibernate.persister.collection.BasicCollectionPersister

All Implemented Interfaces:
  CollectionMetadata, CollectionPersister, QueryableCollection, SQLLoadableCollection, Joinable, PropertyMapping

    public class BasicCollectionPersister

extends AbstractCollectionPersister

Collection persister for collections of values and many-to-many associations.

Field Summary

Fields inherited from class org.hibernate.persister.collection.AbstractCollectionPersister

`batchSize, elementColumnAliases, elementColumnIsInPrimaryKey, elementColumnIsSettable, elementColumnNames, elementColumnReaders, elementColumnReaderTemplates, elementColumnWriters, elementFormulas, elementFormulaTemplates, elementIsPureFormula, elementType, hasIdentifier, hasIndex, hasWhere, identifierColumnName, indexColumnAliases, indexColumnIsSettable, indexColumnNames, indexContainsFormula, indexFormulas, indexFormulaTemplates, keyColumnAliases, keyColumnNames, qualifiedTableName, sqlWhereString`

Constructor Summary
`BasicCollectionPersister(Collection collection, CollectionRegionAccessStrategy cacheAccessStrategy, Configuration cfg, SessionFactoryImplementor factory)`

Method Summary
`boolean` `consumesCollectionAlias()` Very, very, very ugly...
`boolean` `consumesEntityAlias()` Very, very, very ugly...
`protected CollectionInitializer` `createCollectionInitializer(LoadQueryInfluencers loadQueryInfluencers)` Create the `CollectionLoader`
`protected CollectionInitializer` `createSubselectInitializer(SubselectFetch subselect, SessionImplementor session)`
`protected int` `doUpdateRows(Serializable id, PersistentCollection collection, SessionImplementor session)`
`String` `fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses)` Get the from clause part of any joins (optional operation)
`protected String` `generateDeleteRowString()` Generate the SQL DELETE that deletes a particular row
`protected String` `generateDeleteString()` Generate the SQL DELETE that deletes all rows
`protected String` `generateInsertRowString()` Generate the SQL INSERT that creates a new row
`protected String` `generateUpdateRowString()` Generate the SQL UPDATE that updates a row
`boolean` `isCascadeDeleteEnabled()` Is cascade delete handled by the database-level foreign key constraint definition?
`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` `isOneToMany()` Is this a one-to-many association?
`String` `selectFragment(Joinable rhs, String rhsAlias, String lhsAlias, String entitySuffix, String collectionSuffix, boolean includeCollectionColumns)` All columns to select, when loading.
`String` `whereJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses)` Get the where clause part of any joins (optional operation)

Methods inherited from class org.hibernate.persister.collection.AbstractCollectionPersister

`appendElementColumns, appendIdentifierColumns, appendIndexColumns, decrementIndexByBase, deleteRows, elementExists, filterFragment, filterFragment, generateDetectRowByElementString, generateDetectRowByIndexString, generateSelectFragment, generateSelectRowByIndexString, generateSelectSizeString, getAppropriateInitializer, getCacheAccessStrategy, getCacheEntryStructure, getCollectionMetadata, getCollectionPropertyColumnAliases, getCollectionSpaces, getCollectionType, getDeleteAllCheckStyle, getDeleteCheckStyle, getDialect, getElementByIndex, getElementClass, getElementColumnAliases, getElementColumnNames, getElementColumnNames, getElementNodeName, getElementPersister, getElementType, getFactory, getFetchMode, getIdentifierColumnAlias, getIdentifierColumnName, getIdentifierGenerator, getIdentifierType, getIndexColumnAliases, getIndexColumnNames, getIndexColumnNames, getIndexFormulas, getIndexNodeName, getIndexType, getInitializer, getInsertCheckStyle, getKeyColumnAliases, getKeyColumnNames, getKeyType, getManyToManyFilterFragment, getManyToManyOrderByString, getName, getNodeName, getOwnerEntityName, getOwnerEntityPersister, getRole, getSize, getSQLDeleteRowString, getSQLDeleteString, getSQLExceptionConverter, getSQLExceptionHelper, getSQLInsertRowString, getSQLOrderByString, getSQLUpdateRowString, getSQLWhereString, getTableName, getType, getUpdateCheckStyle, hasCache, hasIndex, hasManyToManyOrdering, hasOrdering, hasOrphanDelete, hasWhere, incrementIndexByBase, indexExists, initCollectionPropertyMap, initialize, insertRows, isAffectedByEnabledFilters, isArray, isCollection, isDeleteAllCallable, isDeleteCallable, isExtraLazy, isInsertCallable, isInverse, isLazy, isMutable, isPrimitiveArray, isRowDeleteEnabled, isRowInsertEnabled, isSubselectLoadable, isUpdateCallable, isVersioned, logStaticSQL, oneToManyFilterFragment, postInstantiate, readElement, readIdentifier, readIndex, readKey, recreate, remove, selectFragment, toColumns, toColumns, toString, toType, updateRows, writeElement, writeElementToWhere, writeIdentifier, writeIndex, writeIndexToWhere, writeKey`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### BasicCollectionPersister

    public BasicCollectionPersister(Collection collection,
                                    CollectionRegionAccessStrategy cacheAccessStrategy,
                                    Configuration cfg,
                                    SessionFactoryImplementor factory)
                             throws MappingException,
                                    CacheException

Throws:
  `MappingException`
  `CacheException`

Method Detail

### isCascadeDeleteEnabled

    public boolean isCascadeDeleteEnabled()

  Description copied from interface: `CollectionPersister`
  Is cascade delete handled by the database-level foreign key constraint definition?

### generateDeleteString

    protected String generateDeleteString()

  Generate the SQL DELETE that deletes all rows

  Specified by:
    `generateDeleteString` in class `AbstractCollectionPersister`

### generateInsertRowString

    protected String generateInsertRowString()

  Generate the SQL INSERT that creates a new row

  Specified by:
    `generateInsertRowString` in class `AbstractCollectionPersister`

### generateUpdateRowString

    protected String generateUpdateRowString()

  Generate the SQL UPDATE that updates a row

  Specified by:
    `generateUpdateRowString` in class `AbstractCollectionPersister`

### generateDeleteRowString

    protected String generateDeleteRowString()

  Generate the SQL DELETE that deletes a particular row

  Specified by:
    `generateDeleteRowString` in class `AbstractCollectionPersister`

### consumesEntityAlias

    public boolean consumesEntityAlias()

  Description copied from interface: `Joinable`
  Very, very, very ugly...

  Returns:
    Does this persister "consume" entity column aliases in the result set?

### consumesCollectionAlias

    public boolean consumesCollectionAlias()

  Description copied from interface: `Joinable`
  Very, very, very ugly...

  Returns:
    Does this persister "consume" collection column aliases in the result set?

### isOneToMany

    public boolean isOneToMany()

  Description copied from interface: `CollectionPersister`
  Is this a one-to-many association?

### isManyToMany

    public boolean isManyToMany()

  Description copied from interface: `CollectionPersister`
  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.

  Specified by:
    `isManyToMany` in interface `CollectionPersister`
  Specified by:
    `isManyToMany` in class `AbstractCollectionPersister`

### doUpdateRows

    protected int doUpdateRows(Serializable id,
                               PersistentCollection collection,
                               SessionImplementor session)
                        throws HibernateException

  Specified by:
    `doUpdateRows` in class `AbstractCollectionPersister`
  Throws:
    `HibernateException`

### selectFragment

    public String selectFragment(Joinable rhs,
                                 String rhsAlias,
                                 String lhsAlias,
                                 String entitySuffix,
                                 String collectionSuffix,
                                 boolean includeCollectionColumns)

  Description copied from interface: `Joinable`
  All columns to select, when loading.

### createCollectionInitializer

    protected CollectionInitializer createCollectionInitializer(LoadQueryInfluencers loadQueryInfluencers)
                                                         throws MappingException

  Create the `CollectionLoader`

  Specified by:
    `createCollectionInitializer` in class `AbstractCollectionPersister`
  Throws:
    `MappingException`
  See Also:
    `BasicCollectionLoader`

### fromJoinFragment

    public String fromJoinFragment(String alias,
                                   boolean innerJoin,
                                   boolean includeSubclasses)

  Description copied from interface: `Joinable`
  Get the from clause part of any joins (optional operation)

### whereJoinFragment

    public String whereJoinFragment(String alias,
                                    boolean innerJoin,
                                    boolean includeSubclasses)

  Description copied from interface: `Joinable`
  Get the where clause part of any joins (optional operation)

### createSubselectInitializer

    protected CollectionInitializer createSubselectInitializer(SubselectFetch subselect,
                                                               SessionImplementor session)

  Specified by:
    `createSubselectInitializer` in class `AbstractCollectionPersister`

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