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
  • Method Details

    • 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