Package org.hibernate.persister.entity
Interface Queryable
-
- All Superinterfaces:
AttributeSource
,EntityDefinition
,EntityPersister
,Joinable
,Loadable
,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
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Queryable.Declarer
-
Field Summary
-
Fields inherited from interface org.hibernate.persister.entity.EntityPersister
ENTITY_ID
-
Fields inherited from interface org.hibernate.persister.entity.Loadable
ROWID_ALIAS
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
generateFilterConditionAlias(java.lang.String rootAlias)
The alias used for any filter conditions (mapped where-fragments or enabled-filters).java.lang.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 constraint violations.java.lang.String[][]
getContraintOrderedTableKeyColumnClosure()
For each table specified ingetConstraintOrderedTableNameClosure()
, get the columns that define the key between the various hierarchy classes.java.lang.String
getDiscriminatorSQLValue()
Get the discriminator value for this particular concrete subclass, as a string that may be embedded in a select statementjava.lang.String[]
getIdentifierColumnNames()
Get the names of columns used to persist the identifierjava.lang.String
getMappedSuperclass()
Get the class that this class is mapped as a subclass of - not necessarily the direct superclassQueryable.Declarer
getSubclassPropertyDeclarer(java.lang.String propertyPath)
Determine whether the given property is declared by our mapped class, our super class, or one of our subclasses...java.lang.String[][]
getSubclassPropertyFormulaTemplateClosure()
int
getSubclassPropertyTableNumber(java.lang.String propertyPath)
Given a property name, determine the number of the table which contains the column to which this property is mapped.java.lang.String
getSubclassTableName(int number)
Get the name of the table with the given index from the internal array.DiscriminatorMetadata
getTypeDiscriminatorMetadata()
Retrieve the information needed to properly deal with this entity's discriminator in a query.java.lang.String
identifierSelectFragment(java.lang.String name, java.lang.String suffix)
Given a query alias and an identifying suffix, render the identifier select fragment.boolean
isAbstract()
Is this an abstract class?boolean
isExplicitPolymorphism()
Is this class explicit polymorphism only?boolean
isMultiTable()
Is the inheritance hierarchy described by this persister contained across multiple tables?boolean
isVersionPropertyInsertable()
Is the version property included in insert statements?java.lang.String
propertySelectFragment(java.lang.String alias, java.lang.String suffix, boolean allProperties)
Given a query alias and an identifying suffix, render the property select fragment.SelectFragment
propertySelectFragmentFragment(java.lang.String alias, java.lang.String suffix, boolean allProperties)
-
Methods inherited from interface org.hibernate.persister.walking.spi.AttributeSource
getAttributes
-
Methods inherited from interface org.hibernate.persister.walking.spi.EntityDefinition
getEntityKeyDefinition, getEntityPersister
-
Methods inherited from interface org.hibernate.persister.entity.EntityPersister
afterInitialize, afterReassociate, buildCacheEntry, canExtractIdOutOfEntity, canReadFromCache, canUseReferenceCacheEntries, canWriteToCache, createProxy, delete, findDirty, findModified, forceVersionIncrement, generateEntityDefinition, getBytecodeEnhancementMetadata, getCacheAccessStrategy, getCacheEntryStructure, getClassMetadata, getConcreteProxyClass, getCurrentVersion, getDatabaseSnapshot, getEntityEntryFactory, getEntityMetamodel, getEntityMode, getEntityName, getEntityTuplizer, getFactory, getFilterAliasGenerator, getIdByUniqueKey, getIdentifier, getIdentifier, getIdentifierGenerator, getIdentifierPropertyName, getIdentifierType, getInstrumentationMetadata, getMappedClass, getNaturalIdCacheAccessStrategy, getNaturalIdentifierProperties, getNaturalIdentifierSnapshot, getNavigableRole, getPropertyCascadeStyles, getPropertyCheckability, getPropertyInsertability, getPropertyInsertGenerationInclusions, getPropertyLaziness, getPropertyNames, getPropertyNullability, getPropertySpaces, getPropertyType, getPropertyTypes, getPropertyUpdateability, getPropertyUpdateGenerationInclusions, getPropertyValue, getPropertyValue, getPropertyValues, getPropertyValuesToInsert, getPropertyVersionability, getQuerySpaces, getRootEntityName, getSubclassEntityPersister, getVersion, getVersionProperty, getVersionType, hasCache, hasCascades, hasCollections, hasIdentifierProperty, hasInsertGeneratedProperties, hasLazyProperties, hasMutableProperties, hasNaturalIdCache, hasNaturalIdentifier, hasProxy, hasSubselectLoadableCollections, hasUninitializedLazyProperties, hasUpdateGeneratedProperties, implementsLifecycle, initializeEnhancedEntityUsedAsProxy, insert, insert, instantiate, isBatchLoadable, isCacheInvalidationRequired, isIdentifierAssignedByInsert, isInherited, isInstance, isInstrumented, isLazyPropertiesCacheable, isMutable, isSelectBeforeUpdateRequired, isSubclassEntityName, isTransient, isVersioned, isVersionPropertyGenerated, load, load, loadEntityIdByNaturalId, lock, lock, multiLoad, postInstantiate, processInsertGeneratedProperties, processUpdateGeneratedProperties, resetIdentifier, resolveAttributeIndexes, setIdentifier, setPropertyValue, setPropertyValues, update
-
Methods inherited from interface org.hibernate.persister.entity.Joinable
consumesCollectionAlias, consumesEntityAlias, filterFragment, filterFragment, fromJoinFragment, fromJoinFragment, getKeyColumnNames, getName, getTableName, isCollection, oneToManyFilterFragment, oneToManyFilterFragment, selectFragment, whereJoinFragment, whereJoinFragment
-
Methods inherited from interface org.hibernate.persister.entity.Loadable
getDiscriminatorAlias, getDiscriminatorColumnName, getDiscriminatorType, getDiscriminatorValue, getIdentifierAliases, getPropertyAliases, getPropertyColumnNames, getSubclassForDiscriminatorValue, getTableAliasForColumn, hasRowId, hasSubclasses, hydrate, registerAffectingFetchProfile
-
Methods inherited from interface org.hibernate.persister.entity.PropertyMapping
getType, toColumns, toColumns, toType
-
-
-
-
Method Detail
-
isAbstract
boolean isAbstract()
Is this an abstract class?- Specified by:
isAbstract
in interfaceLoadable
-
isExplicitPolymorphism
boolean isExplicitPolymorphism()
Is this class explicit polymorphism only?
-
getMappedSuperclass
java.lang.String getMappedSuperclass()
Get the class that this class is mapped as a subclass of - not necessarily the direct superclass
-
getDiscriminatorSQLValue
java.lang.String getDiscriminatorSQLValue()
Get the discriminator value for this particular concrete subclass, as a string that may be embedded in a select statement
-
identifierSelectFragment
java.lang.String identifierSelectFragment(java.lang.String name, java.lang.String suffix)
Given a query alias and an identifying suffix, render the identifier select fragment.
-
propertySelectFragment
java.lang.String propertySelectFragment(java.lang.String alias, java.lang.String suffix, boolean allProperties)
Given a query alias and an identifying suffix, render the property select fragment.
-
propertySelectFragmentFragment
SelectFragment propertySelectFragmentFragment(java.lang.String alias, java.lang.String suffix, boolean allProperties)
-
getIdentifierColumnNames
java.lang.String[] getIdentifierColumnNames()
Get the names of columns used to persist the identifier- Specified by:
getIdentifierColumnNames
in interfaceLoadable
-
isMultiTable
boolean isMultiTable()
Is the inheritance hierarchy described by this persister contained across multiple tables?- Returns:
- True if the inheritance hierarchy is spread across multiple tables; false otherwise.
-
getConstraintOrderedTableNameClosure
java.lang.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 constraint violations.- Returns:
- The ordered array of table names.
-
getContraintOrderedTableKeyColumnClosure
java.lang.String[][] getContraintOrderedTableKeyColumnClosure()
For each table specified ingetConstraintOrderedTableNameClosure()
, get the columns that define the key between the various hierarchy classes. The first dimension here corresponds to the table indexes returned ingetConstraintOrderedTableNameClosure()
. The second dimension should have the same length across all the elements in the first dimension. If not, that would be a problem ;)
-
getSubclassPropertyTableNumber
int getSubclassPropertyTableNumber(java.lang.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 fromgetConstraintOrderedTableNameClosure()
. It is relative to the subclass table name closure maintained internal to the persister (yick!). It is also relative to the indexing used to resolvegetSubclassTableName(int)
...- Parameters:
propertyPath
- The name of the property.- Returns:
- The number of the table to which the property is mapped.
-
getSubclassPropertyDeclarer
Queryable.Declarer getSubclassPropertyDeclarer(java.lang.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
java.lang.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.
-
isVersionPropertyInsertable
boolean isVersionPropertyInsertable()
Is the version property included in insert statements?
-
generateFilterConditionAlias
java.lang.String generateFilterConditionAlias(java.lang.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 inheritance 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
-
getSubclassPropertyFormulaTemplateClosure
java.lang.String[][] getSubclassPropertyFormulaTemplateClosure()
-
-