Package org.hibernate.metamodel.mapping
Interface EntityDiscriminatorMapping
-
- All Superinterfaces:
BasicValuedMapping
,BasicValuedModelPart
,Bindable
,Fetchable
,FetchOptions
,FetchStyleAccess
,FetchTimingAccess
,JavaTypedExpressible
,JdbcMappingContainer
,MappingModelExpressible
,ModelPart
,SelectableMapping
,SelectableMappings
,SqlExpressible
,SqlTypedMapping
,ValuedModelPart
,ValueMapping
,VirtualModelPart
- All Known Implementing Classes:
AbstractDiscriminatorMapping
,CaseStatementDiscriminatorMappingImpl
,ExplicitColumnDiscriminatorMappingImpl
public interface EntityDiscriminatorMapping extends VirtualModelPart, BasicValuedModelPart, FetchOptions
Details about the discriminator for an entity hierarchy.- See Also:
DiscriminatorColumn
,DiscriminatorValue
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
EntityDiscriminatorMapping.DiscriminatorValueDetails
Details for a particular discriminator value.-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable
Bindable.JdbcValuesConsumer
-
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.ModelPart
ModelPart.IndexedJdbcValueConsumer, ModelPart.JdbcValueConsumer
-
-
Field Summary
Fields Modifier and Type Field Description static String
LEGACY_HQL_ROLE_NAME
static String
ROLE_NAME
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description BasicFetch<?>
generateFetch(FetchParent fetchParent, NavigablePath fetchablePath, FetchTiming fetchTiming, boolean selected, String resultVariable, DomainResultCreationState creationState)
Generates a Fetch of this fetchabledefault int
getFetchableKey()
The key that identifies this Fetchable within aFetchableContainer
.default String
getFetchableName()
The name of the fetchable.default FetchOptions
getMappedFetchOptions()
The configured fetch timing and styledefault String
getPartName()
The local part name, which is generally the unqualified role namedefault FetchStyle
getStyle()
default FetchTiming
getTiming()
boolean
hasPhysicalColumn()
Is the discriminator defined by a physical column?static boolean
matchesRoleName(String name)
EntityDiscriminatorMapping.DiscriminatorValueDetails
resolveDiscriminatorValue(Object value)
Retrieve the details for a particular discriminator value.Expression
resolveSqlExpression(NavigablePath navigablePath, JdbcMapping jdbcMappingToUse, TableGroup tableGroup, SqlAstCreationState creationState)
Create the appropriate SQL expression for this discriminator-
Methods inherited from interface org.hibernate.metamodel.mapping.BasicValuedMapping
getJdbcMapping
-
Methods inherited from interface org.hibernate.metamodel.mapping.BasicValuedModelPart
forEachSelectable, forEachSelectable, getJdbcMappings, getJdbcTypeCount, getPartMappingType, getSelectable, hasPartitionedSelectionMapping
-
Methods inherited from interface org.hibernate.metamodel.mapping.Bindable
disassemble, forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachJdbcValue
-
Methods inherited from interface org.hibernate.sql.results.graph.Fetchable
asAttributeMapping, incrementFetchDepth, resolveCircularFetch
-
Methods inherited from interface org.hibernate.metamodel.mapping.JdbcMappingContainer
forEachJdbcType
-
Methods inherited from interface org.hibernate.metamodel.mapping.ModelPart
applySqlSelections, applySqlSelections, areEqual, breakDownJdbcValues, createDomainResult, decompose, findContainingEntityMapping, getJavaType, getNavigableRole
-
Methods inherited from interface org.hibernate.metamodel.mapping.SelectableMapping
getContainingTableExpression, getCustomReadExpression, getCustomWriteExpression, getSelectableName, getSelectablePath, getSelectionExpression, getWriteExpression, isFormula, isInsertable, isNullable, isPartitioned, isUpdateable
-
Methods inherited from interface org.hibernate.metamodel.mapping.SqlTypedMapping
getColumnDefinition, getJdbcMapping, getLength, getPrecision, getScale
-
Methods inherited from interface org.hibernate.metamodel.mapping.ValuedModelPart
forEachInsertable, forEachUpdatable, getContainingTableExpression
-
Methods inherited from interface org.hibernate.metamodel.mapping.ValueMapping
getExpressibleJavaType, getMappedType, treatAs
-
Methods inherited from interface org.hibernate.metamodel.mapping.VirtualModelPart
isVirtual
-
-
-
-
Field Detail
-
ROLE_NAME
static final String ROLE_NAME
- See Also:
- Constant Field Values
-
LEGACY_HQL_ROLE_NAME
static final String LEGACY_HQL_ROLE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
matchesRoleName
static boolean matchesRoleName(String name)
-
getPartName
default String getPartName()
Description copied from interface:ModelPart
The local part name, which is generally the unqualified role name- Specified by:
getPartName
in interfaceModelPart
-
getFetchableName
default String getFetchableName()
Description copied from interface:Fetchable
The name of the fetchable. This is the part's "local name".- Specified by:
getFetchableName
in interfaceFetchable
- See Also:
ModelPart.getNavigableRole()
,NavigableRole.getLocalName()
-
hasPhysicalColumn
boolean hasPhysicalColumn()
Is the discriminator defined by a physical column?
-
getFetchableKey
default int getFetchableKey()
Description copied from interface:Fetchable
The key that identifies this Fetchable within aFetchableContainer
. If this Fetchable is part ofFetchableContainer.visitFetchables(IndexedConsumer, EntityMappingType)
, the values is guaranteed to be between 0 (inclusive) andFetchableContainer.getNumberOfFetchableKeys()
(exclusive). Other Fetchable objects may have a special negative value.The main intent of this key is to index e.g.
Fetch
objects in an array.- Specified by:
getFetchableKey
in interfaceFetchable
-
resolveDiscriminatorValue
EntityDiscriminatorMapping.DiscriminatorValueDetails resolveDiscriminatorValue(Object value)
Retrieve the details for a particular discriminator value. Returnsnull
if there is no match.
-
resolveSqlExpression
Expression resolveSqlExpression(NavigablePath navigablePath, JdbcMapping jdbcMappingToUse, TableGroup tableGroup, SqlAstCreationState creationState)
Create the appropriate SQL expression for this discriminator- Parameters:
jdbcMappingToUse
- The JDBC mapping to use. This allows opting between the "domain result type" (aka Class) and the "underlying type" (Integer, String, etc)
-
generateFetch
BasicFetch<?> generateFetch(FetchParent fetchParent, NavigablePath fetchablePath, FetchTiming fetchTiming, boolean selected, String resultVariable, DomainResultCreationState creationState)
Description copied from interface:Fetchable
Generates a Fetch of this fetchable- Specified by:
generateFetch
in interfaceFetchable
- Parameters:
fetchParent
- The parent of the Fetch we are generatingfetchablePath
- The overall path within the graphfetchTiming
- The requested fetch timing
-
getMappedFetchOptions
default FetchOptions getMappedFetchOptions()
Description copied from interface:Fetchable
The configured fetch timing and style- Specified by:
getMappedFetchOptions
in interfaceFetchable
-
getStyle
default FetchStyle getStyle()
- Specified by:
getStyle
in interfaceFetchStyleAccess
-
getTiming
default FetchTiming getTiming()
- Specified by:
getTiming
in interfaceFetchTimingAccess
-
-