org.hibernate.persister.collection
Interface QueryableCollection

All Superinterfaces:
CollectionPersister, Joinable, PropertyMapping
All Known Subinterfaces:
SQLLoadableCollection
All Known Implementing Classes:
AbstractCollectionPersister

public interface QueryableCollection
extends PropertyMapping, Joinable, CollectionPersister

A collection role that may be queried or loaded by outer join.

Author:
Gavin King

Method Summary
 String[] getElementColumnNames()
          Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)
 String[] getElementColumnNames(String alias)
          Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association), aliased by the given table alias
 EntityPersister getElementPersister()
          Get the persister of the element class, if this is a collection of entities (optional operation).
 FetchMode getFetchMode()
          Should we load this collection role by outerjoining?
 String[] getIndexColumnNames()
          Get the names of the collection index columns if this is an indexed collection (optional operation)
 String[] getIndexColumnNames(String alias)
          Get the names of the collection index columns if this is an indexed collection (optional operation), aliased by the given table alias
 String[] getIndexFormulas()
          Get the index formulas if this is an indexed collection (optional operation)
 String getManyToManyOrderByString(String alias)
          Get the order-by to be applied at the target table of a many to many
 String getSQLOrderByString(String alias)
          Get the order by SQL
 boolean hasWhere()
          Does this collection role have a where clause filter?
 String selectFragment(String alias, String columnSuffix)
          Generate a list of collection index and element columns
 
Methods inherited from interface org.hibernate.persister.entity.PropertyMapping
getType, toColumns, toColumns, toType
 
Methods inherited from interface org.hibernate.persister.entity.Joinable
consumesCollectionAlias, consumesEntityAlias, filterFragment, fromJoinFragment, getKeyColumnNames, getName, getTableName, isCollection, oneToManyFilterFragment, selectFragment, whereJoinFragment
 
Methods inherited from interface org.hibernate.persister.collection.CollectionPersister
deleteRows, elementExists, getCache, getCacheEntryStructure, getCollectionMetadata, getCollectionSpaces, getCollectionType, getElementByIndex, getElementClass, getElementColumnAliases, getElementNodeName, getElementType, getFactory, getIdentifierColumnAlias, getIdentifierGenerator, getIdentifierType, getIndexColumnAliases, getIndexNodeName, getIndexType, getKeyColumnAliases, getKeyType, getManyToManyFilterFragment, getNodeName, getOwnerEntityPersister, getRole, getSize, hasCache, hasIndex, hasManyToManyOrdering, hasOrdering, hasOrphanDelete, indexExists, initialize, insertRows, isAffectedByEnabledFilters, isArray, isCascadeDeleteEnabled, isExtraLazy, isInverse, isLazy, isManyToMany, isMutable, isOneToMany, isPrimitiveArray, isVersioned, postInstantiate, readElement, readIdentifier, readIndex, readKey, recreate, remove, updateRows
 

Method Detail

selectFragment

public String selectFragment(String alias,
                             String columnSuffix)
Generate a list of collection index and element columns


getIndexColumnNames

public String[] getIndexColumnNames()
Get the names of the collection index columns if this is an indexed collection (optional operation)


getIndexFormulas

public String[] getIndexFormulas()
Get the index formulas if this is an indexed collection (optional operation)


getIndexColumnNames

public String[] getIndexColumnNames(String alias)
Get the names of the collection index columns if this is an indexed collection (optional operation), aliased by the given table alias


getElementColumnNames

public String[] getElementColumnNames(String alias)
Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association), aliased by the given table alias


getElementColumnNames

public String[] getElementColumnNames()
Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)


getSQLOrderByString

public String getSQLOrderByString(String alias)
Get the order by SQL


getManyToManyOrderByString

public String getManyToManyOrderByString(String alias)
Get the order-by to be applied at the target table of a many to many

Parameters:
alias - The alias for the many-to-many target table
Returns:
appropriate order-by fragment or empty string.

hasWhere

public boolean hasWhere()
Does this collection role have a where clause filter?


getElementPersister

public EntityPersister getElementPersister()
Get the persister of the element class, if this is a collection of entities (optional operation). Note that for a one-to-many association, the returned persister must be OuterJoinLoadable.


getFetchMode

public FetchMode getFetchMode()
Should we load this collection role by outerjoining?