org.hibernate.persister.collection

Interface QueryableCollection

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

public interface QueryableCollection
extends PropertyMapping, Joinable, CollectionPersister

A collection role that may be queried or loaded by outer join.
Author:
Gavin King

Method Summary

abstract String[]
getElementColumnNames()
Get the names of the collection element columns (or the primary key columns in the case of a one-to-many association)
abstract 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
abstract EntityPersister
getElementPersister()
Get the persister of the element class, if this is a collection of entities (optional operation).
abstract FetchMode
getFetchMode()
Should we load this collection role by outerjoining?
abstract String[]
getIndexColumnNames()
Get the names of the collection index columns if this is an indexed collection (optional operation)
abstract 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
abstract String[]
getIndexFormulas()
Get the index formulas if this is an indexed collection (optional operation)
abstract String
getManyToManyOrderByString(String alias)
Get the order-by to be applied at the target table of a many to many
abstract String
getSQLOrderByString(String alias)
Get the order by SQL
abstract boolean
hasWhere()
Does this collection role have a where clause filter?
abstract String
selectFragment(String alias, String columnSuffix)
Generate a list of collection index and element columns

Methods inherited from interface org.hibernate.persister.collection.CollectionPersister

deleteRows, elementExists, getCacheAccessStrategy, 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

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.entity.PropertyMapping

getType, toColumns, toColumns, toType

Method Details

getElementColumnNames

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

getElementColumnNames

public abstract 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

getElementPersister

public abstract 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 abstract FetchMode getFetchMode()
Should we load this collection role by outerjoining?

getIndexColumnNames

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

getIndexColumnNames

public abstract 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

getIndexFormulas

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

getManyToManyOrderByString

public abstract 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.

getSQLOrderByString

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

hasWhere

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

selectFragment

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