## org.hibernate.persister.entity
Interface Queryable

All Superinterfaces:
  EntityPersister, Joinable, Loadable, OptimisticCacheSource, PropertyMapping

All Known Implementing Classes:
  AbstractEntityPersister, JoinedSubclassEntityPersister, SingleTableEntityPersister, UnionSubclassEntityPersister

    public interface Queryable

extends Loadable, PropertyMapping, Joinable

Extends the generic `EntityPersister` contract to add operations required by the Hibernate Query Language

Author:
  Gavin King

Nested Class Summary
`static class` `Queryable.Declarer`

Field Summary

Fields inherited from interface org.hibernate.persister.entity.Loadable
`ROWID_ALIAS`

Fields inherited from interface org.hibernate.persister.entity.EntityPersister
`ENTITY_ID`

Method Summary
`String` `generateFilterConditionAlias(String rootAlias)` The alias used for any filter conditions (mapped where-fragments or enabled-filters).
`String[]` `getConstraintOrderedTableNameClosure()` Get the names of all tables used in the hierarchy (up and down) ordered such that deletes in the given order would not cause contraint violations.
`String[][]` `getContraintOrderedTableKeyColumnClosure()` For each table specified in `getConstraintOrderedTableNameClosure()`, get the columns that define the key between the various hierarchy classes.
`String` `getDiscriminatorSQLValue()` Get the discriminator value for this particular concrete subclass, as a string that may be embedded in a select statement
`String[]` `getIdentifierColumnNames()` Get the names of columns used to persist the identifier
`String` `getMappedSuperclass()` Get the class that this class is mapped as a subclass of - not necessarily the direct superclass
`Queryable.Declarer` `getSubclassPropertyDeclarer(String propertyPath)` Determine whether the given property is declared by our mapped class, our super class, or one of our subclasses...
`int` `getSubclassPropertyTableNumber(String propertyPath)` Given a property name, determine the number of the table which contains the column to which this property is mapped.
`String` `getSubclassTableName(int number)` Get the name of the table with the given index from the internal array.
`String` `getTemporaryIdTableDDL()` Get the appropriate DDL command for generating the temporary table to be used to (potentially) store id values when performing bulk update/deletes.
`String` `getTemporaryIdTableName()` Get the name of the temporary table to be used to (potentially) store id values when performing bulk update/deletes.
`DiscriminatorMetadata` `getTypeDiscriminatorMetadata()` Retrieve the information needed to properly deal with this entity's discriminator in a query.
`String` `identifierSelectFragment(String name, String suffix)` Given a query alias and an identifying suffix, render the intentifier select fragment.
`boolean` `isAbstract()` Is this an abstract class?
`boolean` `isExplicitPolymorphism()` Is this class explicit polymorphism only?
`boolean` `isMultiTable()` Is the inheritence hierarchy described by this persister contained across multiple tables?
`boolean` `isVersionPropertyInsertable()` Is the version property included in insert statements?
`String` `propertySelectFragment(String alias, String suffix, boolean allProperties)` Given a query alias and an identifying suffix, render the property select fragment.
`SelectFragment` `propertySelectFragmentFragment(String alias, String suffix, boolean allProperties)`

Methods inherited from interface org.hibernate.persister.entity.Loadable
`getDiscriminatorAlias, getDiscriminatorColumnName, getDiscriminatorType, getIdentifierAliases, getPropertyAliases, getPropertyColumnNames, getSubclassForDiscriminatorValue, hasRowId, hasSubclasses, hydrate, registerAffectingFetchProfile`

Methods inherited from interface org.hibernate.persister.entity.EntityPersister

`afterInitialize, afterReassociate, canExtractIdOutOfEntity, createProxy, delete, findDirty, findModified, forceVersionIncrement, getCacheAccessStrategy, getCacheEntryStructure, getClassMetadata, getConcreteProxyClass, getCurrentVersion, getDatabaseSnapshot, getEntityMetamodel, getEntityName, getFactory, getIdentifier, getIdentifier, getIdentifierGenerator, getIdentifierPropertyName, getIdentifierType, getMappedClass, getNaturalIdentifierProperties, getNaturalIdentifierSnapshot, getPropertyCascadeStyles, getPropertyCheckability, getPropertyInsertability, getPropertyInsertGenerationInclusions, getPropertyLaziness, getPropertyNames, getPropertyNullability, getPropertySpaces, getPropertyType, getPropertyTypes, getPropertyUpdateability, getPropertyUpdateGenerationInclusions, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getPropertyVersionability, getQuerySpaces, getRootEntityName, getSubclassEntityPersister, getVersion, getVersionProperty, getVersionType, guessEntityMode, hasCache, hasCascades, hasCollections, hasIdentifierProperty, hasInsertGeneratedProperties, hasLazyProperties, hasMutableProperties, hasNaturalIdentifier, hasProxy, hasSubselectLoadableCollections, hasUninitializedLazyProperties, hasUpdateGeneratedProperties, implementsLifecycle, implementsValidatable, insert, insert, instantiate, instantiate, isBatchLoadable, isCacheInvalidationRequired, isIdentifierAssignedByInsert, isInherited, isInstance, isInstrumented, isLazyPropertiesCacheable, isMutable, isSelectBeforeUpdateRequired, isSubclassEntityName, isTransient, isVersioned, isVersionPropertyGenerated, load, load, lock, lock, postInstantiate, processInsertGeneratedProperties, processUpdateGeneratedProperties, resetIdentifier, resetIdentifier, setIdentifier, setIdentifier, setPropertyValue, setPropertyValues, update`

Methods inherited from interface org.hibernate.cache.OptimisticCacheSource
`getVersionComparator`

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`

Method Detail

### isAbstract

    boolean isAbstract()

  Is this an abstract class?

  Specified by:
    `isAbstract` in interface `Loadable`

### isExplicitPolymorphism

    boolean isExplicitPolymorphism()

  Is this class explicit polymorphism only?

### getMappedSuperclass

    String getMappedSuperclass()

  Get the class that this class is mapped as a subclass of - not necessarily the direct superclass

### getDiscriminatorSQLValue

    String getDiscriminatorSQLValue()

  Get the discriminator value for this particular concrete subclass, as a string that may be embedded in a select statement

### identifierSelectFragment

    String identifierSelectFragment(String name,
                                    String suffix)

  Given a query alias and an identifying suffix, render the intentifier select fragment.

### propertySelectFragment

    String propertySelectFragment(String alias,
                                  String suffix,
                                  boolean allProperties)

  Given a query alias and an identifying suffix, render the property select fragment.

### propertySelectFragmentFragment

    SelectFragment propertySelectFragmentFragment(String alias,
                                                  String suffix,
                                                  boolean allProperties)

### getIdentifierColumnNames

    String[] getIdentifierColumnNames()

  Get the names of columns used to persist the identifier

  Specified by:
    `getIdentifierColumnNames` in interface `Loadable`

### isMultiTable

    boolean isMultiTable()

  Is the inheritence hierarchy described by this persister contained across multiple tables?

  Returns:
    True if the inheritence hierarchy is spread across multiple tables; false otherwise.

### getConstraintOrderedTableNameClosure

    String[] getConstraintOrderedTableNameClosure()

  Get the names of all tables used in the hierarchy (up and down) ordered such that deletes in the given order would not cause contraint violations.

  Returns:
    The ordered array of table names.

### getContraintOrderedTableKeyColumnClosure

    String[][] getContraintOrderedTableKeyColumnClosure()

  For each table specified in `getConstraintOrderedTableNameClosure()`, get the columns that define the key between the various hierarchy classes.

  The first dimension here corresponds to the table indexes returned in `getConstraintOrderedTableNameClosure()`.

  The second dimension should have the same length across all the elements in the first dimension. If not, that'd be a problem ;)

  Returns:

### getTemporaryIdTableName

    String getTemporaryIdTableName()

  Get the name of the temporary table to be used to (potentially) store id values when performing bulk update/deletes.

  Returns:
    The appropriate temporary table name.

### getTemporaryIdTableDDL

    String getTemporaryIdTableDDL()

  Get the appropriate DDL command for generating the temporary table to be used to (potentially) store id values when performing bulk update/deletes.

  Returns:
    The appropriate temporary table creation command.

### getSubclassPropertyTableNumber

    int getSubclassPropertyTableNumber(String propertyPath)

  Given a property name, determine the number of the table which contains the column to which this property is mapped.

  Note that this is not relative to the results from `getConstraintOrderedTableNameClosure()`. It is relative to the subclass table name closure maintained internal to the persister (yick!). It is also relative to the indexing used to resolve `getSubclassTableName(int)`...

  Parameters:
    `propertyPath` - The name of the property.
  Returns:
    The nunber of the table to which the property is mapped.

### getSubclassPropertyDeclarer

    Queryable.Declarer getSubclassPropertyDeclarer(String propertyPath)

  Determine whether the given property is declared by our mapped class, our super class, or one of our subclasses...

  Note: the method is called 'subclass property...' simply for consistency sake (e.g. `getSubclassPropertyTableNumber(java.lang.String)`

  Parameters:
    `propertyPath` - The property name.
  Returns:
    The property declarer

### getSubclassTableName

    String getSubclassTableName(int number)

  Get the name of the table with the given index from the internal array.

  Parameters:
    `number` - The index into the internal array.
  Returns:

### isVersionPropertyInsertable

    boolean isVersionPropertyInsertable()

  Is the version property included in insert statements?

### generateFilterConditionAlias

    String generateFilterConditionAlias(String rootAlias)

  The alias used for any filter conditions (mapped where-fragments or enabled-filters). This may or may not be different from the root alias depending upon the inheritence mapping strategy.

  Parameters:
    `rootAlias` - The root alias
  Returns:
    The alias used for "filter conditions" within the where clause.

### getTypeDiscriminatorMetadata

    DiscriminatorMetadata getTypeDiscriminatorMetadata()

  Retrieve the information needed to properly deal with this entity's discriminator in a query.

  Returns:
    The entity discriminator metadata

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