Class AbstractDelegatingMetadataBuilderImplementor<T extends MetadataBuilderImplementor>
- Type Parameters:
T
- The specific subclass; Allows subclasses to narrow the return type of the contract methods to a specialization ofMetadataBuilderImplementor
.
- All Implemented Interfaces:
MetadataBuilder
,MetadataBuilderImplementor
MetadataBuilderImplementor
using delegation.-
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionapplyAccessType
(AccessType accessType) Specify the second-level access-type to be used by default for entities and collections that define second-level caching, but do not specify a granular access-type.Specify a particular ArchiveDescriptorFactory instance to use in scanning.applyAttributeConverter
(AttributeConverter attributeConverter) Adds an AttributeConverter instance.applyAttributeConverter
(AttributeConverter attributeConverter, boolean autoApply) Adds anAttributeConverter
instance, explicitly indicating whether to auto-apply it.<O,
R> MetadataBuilder applyAttributeConverter
(Class<? extends AttributeConverter<O, R>> attributeConverterClass) Adds an AttributeConverter by its Class.<O,
R> MetadataBuilder applyAttributeConverter
(Class<? extends AttributeConverter<O, R>> attributeConverterClass, boolean autoApply) Adds anAttributeConverter
byClass
, explicitly indicating whether to auto-apply it.applyAttributeConverter
(ConverterDescriptor descriptor) Adds an AttributeConverter by aConverterDescriptor
applyAuxiliaryDatabaseObject
(AuxiliaryDatabaseObject auxiliaryDatabaseObject) Contribute anAuxiliaryDatabaseObject
.applyBasicType
(BasicType<?> type) Specify an additional or overridden basic type mapping.applyBasicType
(BasicType<?> type, String... keys) Specify an additional or overridden basic type mapping supplying specific registration keys.applyBasicType
(UserType<?> type, String... keys) Register an additional or overridden custom type mapping.applyCacheRegionDefinition
(CacheRegionDefinition cacheRegionDefinition) Apply aCacheRegionDefinition
to be applied to an entity, collection, or query while building theMetadata
object.applyColumnOrderingStrategy
(ColumnOrderingStrategy columnOrderingStrategy) Specify theColumnOrderingStrategy
.applyFunctions
(FunctionContributor functionContributor) Apply an explicitFunctionContributor
(implicit application viaServiceLoader
will still happen too)applyImplicitCatalogName
(String implicitCatalogName) Specify the implicit catalog name to apply to any unqualified database names.applyImplicitNamingStrategy
(ImplicitNamingStrategy namingStrategy) Specify theImplicitNamingStrategy
.applyImplicitSchemaName
(String implicitSchemaName) Specify the implicit schema name to apply to any unqualified database names.applyIndexView
(Object jandexView) Allows specifying a specific Jandex index to use for reading annotation information.applyPhysicalNamingStrategy
(PhysicalNamingStrategy namingStrategy) Specify thePhysicalNamingStrategy
.applyScanEnvironment
(ScanEnvironment scanEnvironment) Consider this temporary as discussed onScanEnvironment
applyScanner
(Scanner scanner) Specify a particular Scanner instance to use.applyScanOptions
(ScanOptions scanOptions) Specify the options to be used in performing scanning.applySharedCacheMode
(SharedCacheMode cacheMode) Specify the second-level cache mode.applySqlFunction
(String functionName, SqmFunctionDescriptor function) Contribute aSqmFunctionDescriptor
to HQL.applyTempClassLoader
(ClassLoader tempClassLoader) Apply aClassLoader
for use while building theMetadata
.applyTypes
(TypeContributor typeContributor) Apply an explicitTypeContributor
(implicit application viaServiceLoader
will still happen too)build()
Actually build the metamodelprotected MetadataBuilderImplementor
delegate()
enableExplicitDiscriminatorsForJoinedSubclassSupport
(boolean enabled) Should we process or ignore explicitly defined discriminators in the case of joined subclasses? The legacy behavior of Hibernate was to ignore the discriminator annotations because Hibernate (unlike some providers) does not need discriminators to determine the concrete type when it comes to joined inheritance.enableGlobalNationalizedCharacterDataSupport
(boolean enabled) Should nationalized variants of character data be used in the database types? For example, shouldNVARCHAR
be used instead ofVARCHAR
?NCLOB
instead ofCLOB
?enableImplicitDiscriminatorsForJoinedSubclassSupport
(boolean enabled) Similarly toMetadataBuilder.enableExplicitDiscriminatorsForJoinedSubclassSupport(boolean)
, but here how should we treat joined inheritance when there is no explicitly defined discriminator annotations? If enabled, we will handle joined inheritance with no explicit discriminator annotations by implicitly creating one (following the JPA implicit naming rules).enableImplicitForcingOfDiscriminatorsInSelect
(boolean supported) For entities which do not explicitly say, should we force discriminators into SQL selects? The (historical) default isfalse
.Get the options being collected on this MetadataBuilder that will ultimately be used in building the Metadata.protected abstract T
getThis()
Returns a specific implementation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.boot.MetadataBuilder
applyImplicitListSemantics
Methods inherited from interface org.hibernate.boot.spi.MetadataBuilderImplementor
getBootstrapContext
-
Constructor Details
-
AbstractDelegatingMetadataBuilderImplementor
-
-
Method Details
-
delegate
-
getThis
Returns a specific implementation. See the What is the "getThis trick?". -
applyImplicitSchemaName
Description copied from interface:MetadataBuilder
Specify the implicit schema name to apply to any unqualified database names.Its default is defined by the "hibernate.default_schema" setting if using property-based configuration.
- Specified by:
applyImplicitSchemaName
in interfaceMetadataBuilder
- Parameters:
implicitSchemaName
- The implicit schema name- Returns:
this
, for method chaining- See Also:
-
applyImplicitCatalogName
Description copied from interface:MetadataBuilder
Specify the implicit catalog name to apply to any unqualified database names.Its default is defined by the "hibernate.default_catalog" setting if using property-based configuration.
- Specified by:
applyImplicitCatalogName
in interfaceMetadataBuilder
- Parameters:
implicitCatalogName
- The implicit catalog name- Returns:
this
, for method chaining- See Also:
-
applyImplicitNamingStrategy
Description copied from interface:MetadataBuilder
Specify theImplicitNamingStrategy
.Its default is defined by the "hibernate.implicit_naming_strategy" setting if using property-based configuration.
- Specified by:
applyImplicitNamingStrategy
in interfaceMetadataBuilder
- Parameters:
namingStrategy
- TheImplicitNamingStrategy
- Returns:
this
, for method chaining- See Also:
-
applyPhysicalNamingStrategy
Description copied from interface:MetadataBuilder
Specify thePhysicalNamingStrategy
.Its default is defined by the "hibernate.physical_naming_strategy" setting if using property-based configuration.
- Specified by:
applyPhysicalNamingStrategy
in interfaceMetadataBuilder
- Parameters:
namingStrategy
- ThePhysicalNamingStrategy
- Returns:
this
, for method chaining- See Also:
-
applyColumnOrderingStrategy
Description copied from interface:MetadataBuilder
Specify theColumnOrderingStrategy
.Its default is defined by the "hibernate.column_ordering_strategy" setting if using property-based configuration.
- Specified by:
applyColumnOrderingStrategy
in interfaceMetadataBuilder
- Parameters:
columnOrderingStrategy
- TheColumnOrderingStrategy
- Returns:
this
, for method chaining- See Also:
-
applyAccessType
Description copied from interface:MetadataBuilder
Specify the second-level access-type to be used by default for entities and collections that define second-level caching, but do not specify a granular access-type.Its default is defined by the "hibernate.cache.default_cache_concurrency_strategy" setting if using property-based configuration.
- Specified by:
applyAccessType
in interfaceMetadataBuilder
- Parameters:
accessType
- The access-type to use as default.- Returns:
this
, for method chaining- See Also:
-
applyIndexView
Description copied from interface:MetadataBuilder
Allows specifying a specific Jandex index to use for reading annotation information.It's important to understand that if a Jandex index is passed in, it is expected that this Jandex index already contains all entries for all classes. No additional indexing will be done in this case.
- Specified by:
applyIndexView
in interfaceMetadataBuilder
- Parameters:
jandexView
- The Jandex index to use.- Returns:
this
, for method chaining
-
applyScanOptions
Description copied from interface:MetadataBuilder
Specify the options to be used in performing scanning.- Specified by:
applyScanOptions
in interfaceMetadataBuilder
- Parameters:
scanOptions
- The scan options.- Returns:
this
, for method chaining- See Also:
-
applyScanEnvironment
Description copied from interface:MetadataBuilder
Consider this temporary as discussed onScanEnvironment
- Specified by:
applyScanEnvironment
in interfaceMetadataBuilder
- Parameters:
scanEnvironment
- The environment for scanning- Returns:
this
, for method chaining
-
applyScanner
Description copied from interface:MetadataBuilder
Specify a particular Scanner instance to use.Its default is defined by the "hibernate.archive.scanner" setting if using property-based configuration.
- Specified by:
applyScanner
in interfaceMetadataBuilder
- Parameters:
scanner
- The scanner to use.- Returns:
this
, for method chaining- See Also:
-
applyArchiveDescriptorFactory
Description copied from interface:MetadataBuilder
Specify a particular ArchiveDescriptorFactory instance to use in scanning.Its default is defined by the "hibernate.archive.interpreter" setting if using property-based configuration.
- Specified by:
applyArchiveDescriptorFactory
in interfaceMetadataBuilder
- Parameters:
factory
- The ArchiveDescriptorFactory to use.- Returns:
this
, for method chaining- See Also:
-
enableExplicitDiscriminatorsForJoinedSubclassSupport
Description copied from interface:MetadataBuilder
Should we process or ignore explicitly defined discriminators in the case of joined subclasses? The legacy behavior of Hibernate was to ignore the discriminator annotations because Hibernate (unlike some providers) does not need discriminators to determine the concrete type when it comes to joined inheritance. However, for portability reasons we do now allow using explicit discriminators along with joined inheritance. It is configurable though to support legacy apps.Its default is defined by the "hibernate.discriminator.ignore_explicit_for_joined" setting if using property-based configuration.
- Specified by:
enableExplicitDiscriminatorsForJoinedSubclassSupport
in interfaceMetadataBuilder
- Parameters:
enabled
- Should processing (not ignoring) explicit discriminators be enabled?- Returns:
this
, for method chaining- See Also:
-
enableImplicitDiscriminatorsForJoinedSubclassSupport
Description copied from interface:MetadataBuilder
Similarly toMetadataBuilder.enableExplicitDiscriminatorsForJoinedSubclassSupport(boolean)
, but here how should we treat joined inheritance when there is no explicitly defined discriminator annotations? If enabled, we will handle joined inheritance with no explicit discriminator annotations by implicitly creating one (following the JPA implicit naming rules).Again the premise here is JPA portability, bearing in mind that some JPA provider need these discriminators.
Its default is defined by the "hibernate.discriminator.implicit_for_joined" setting if using property-based configuration.
- Specified by:
enableImplicitDiscriminatorsForJoinedSubclassSupport
in interfaceMetadataBuilder
- Parameters:
enabled
- Should we implicitly create discriminator for joined inheritance if one is not explicitly mentioned?- Returns:
this
, for method chaining- See Also:
-
enableImplicitForcingOfDiscriminatorsInSelect
Description copied from interface:MetadataBuilder
For entities which do not explicitly say, should we force discriminators into SQL selects? The (historical) default isfalse
.Its default is defined by the "hibernate.discriminator.force_in_select" setting if using property-based configuration.
- Specified by:
enableImplicitForcingOfDiscriminatorsInSelect
in interfaceMetadataBuilder
- Parameters:
supported
-true
indicates we will force the discriminator into the select;false
indicates we will not.- Returns:
this
, for method chaining- See Also:
-
enableGlobalNationalizedCharacterDataSupport
Description copied from interface:MetadataBuilder
Should nationalized variants of character data be used in the database types? For example, shouldNVARCHAR
be used instead ofVARCHAR
?NCLOB
instead ofCLOB
?Its default is defined by the "hibernate.use_nationalized_character_data" setting if using property-based configuration.
- Specified by:
enableGlobalNationalizedCharacterDataSupport
in interfaceMetadataBuilder
- Parameters:
enabled
-true
says to use nationalized variants;false
says to use the non-nationalized variants.- Returns:
this
, for method chaining- See Also:
-
applyBasicType
Description copied from interface:MetadataBuilder
Specify an additional or overridden basic type mapping.- Specified by:
applyBasicType
in interfaceMetadataBuilder
- Parameters:
type
- The type addition or override.- Returns:
this
, for method chaining
-
applyBasicType
Description copied from interface:MetadataBuilder
Specify an additional or overridden basic type mapping supplying specific registration keys.- Specified by:
applyBasicType
in interfaceMetadataBuilder
- Parameters:
type
- The type addition or override.keys
- The keys under which to register the basic type.- Returns:
this
, for method chaining
-
applyBasicType
Description copied from interface:MetadataBuilder
Register an additional or overridden custom type mapping.- Specified by:
applyBasicType
in interfaceMetadataBuilder
- Parameters:
type
- The custom typekeys
- The keys under which to register the custom type.- Returns:
this
, for method chaining
-
applyTypes
Description copied from interface:MetadataBuilder
Apply an explicitTypeContributor
(implicit application viaServiceLoader
will still happen too)- Specified by:
applyTypes
in interfaceMetadataBuilder
- Parameters:
typeContributor
- The contributor to apply- Returns:
this
, for method chaining
-
applyCacheRegionDefinition
Description copied from interface:MetadataBuilder
Apply aCacheRegionDefinition
to be applied to an entity, collection, or query while building theMetadata
object.- Specified by:
applyCacheRegionDefinition
in interfaceMetadataBuilder
- Parameters:
cacheRegionDefinition
- The cache region definition to apply- Returns:
this
, for method chaining
-
applyTempClassLoader
Description copied from interface:MetadataBuilder
Apply aClassLoader
for use while building theMetadata
.Ideally we should avoid accessing
ClassLoader
s when perform 1st phase of bootstrap. This is aClassLoader
that can be used in cases where we absolutely must.In EE managed environments, this is the
ClassLoader
mandated byPersistenceUnitInfo.getNewTempClassLoader()
. ThisClassLoader
is discarded by the container afterward, the idea being that theClass
can still be enhanced in the applicationClassLoader
.In other environments, pass a
ClassLoader
that performs the same function, if desired.- Specified by:
applyTempClassLoader
in interfaceMetadataBuilder
- Parameters:
tempClassLoader
-ClassLoader
for use while building theMetadata
- Returns:
this
, for method chaining
-
applyFunctions
Description copied from interface:MetadataBuilder
Apply an explicitFunctionContributor
(implicit application viaServiceLoader
will still happen too)- Specified by:
applyFunctions
in interfaceMetadataBuilder
- Parameters:
functionContributor
- The contributor to apply- Returns:
this
, for method chaining
-
applySqlFunction
Description copied from interface:MetadataBuilder
Contribute aSqmFunctionDescriptor
to HQL.- Specified by:
applySqlFunction
in interfaceMetadataBuilder
- See Also:
-
applyAuxiliaryDatabaseObject
public MetadataBuilder applyAuxiliaryDatabaseObject(AuxiliaryDatabaseObject auxiliaryDatabaseObject) Description copied from interface:MetadataBuilder
Contribute anAuxiliaryDatabaseObject
.- Specified by:
applyAuxiliaryDatabaseObject
in interfaceMetadataBuilder
-
applyAttributeConverter
Description copied from interface:MetadataBuilder
Adds an AttributeConverter by aConverterDescriptor
- Specified by:
applyAttributeConverter
in interfaceMetadataBuilder
- Parameters:
descriptor
- The descriptor- Returns:
this
for method chaining
-
applyAttributeConverter
public <O,R> MetadataBuilder applyAttributeConverter(Class<? extends AttributeConverter<O, R>> attributeConverterClass) Description copied from interface:MetadataBuilder
Adds an AttributeConverter by its Class.- Specified by:
applyAttributeConverter
in interfaceMetadataBuilder
- Parameters:
attributeConverterClass
- The AttributeConverter class.- Returns:
this
for method chaining
-
applyAttributeConverter
public <O,R> MetadataBuilder applyAttributeConverter(Class<? extends AttributeConverter<O, R>> attributeConverterClass, boolean autoApply) Description copied from interface:MetadataBuilder
Adds anAttributeConverter
byClass
, explicitly indicating whether to auto-apply it.- Specified by:
applyAttributeConverter
in interfaceMetadataBuilder
- Parameters:
attributeConverterClass
- The AttributeConverter class.autoApply
- Should the AttributeConverter be auto applied to property types as specified by its "entity attribute" parameterized type?- Returns:
this
for method chaining
-
applyAttributeConverter
Description copied from interface:MetadataBuilder
Adds an AttributeConverter instance.- Specified by:
applyAttributeConverter
in interfaceMetadataBuilder
- Parameters:
attributeConverter
- The AttributeConverter instance.- Returns:
this
for method chaining
-
applyAttributeConverter
public MetadataBuilder applyAttributeConverter(AttributeConverter attributeConverter, boolean autoApply) Description copied from interface:MetadataBuilder
Adds anAttributeConverter
instance, explicitly indicating whether to auto-apply it.- Specified by:
applyAttributeConverter
in interfaceMetadataBuilder
- Parameters:
attributeConverter
- The AttributeConverter instance.autoApply
- Should the AttributeConverter be auto applied to property types as specified by its "entity attribute" parameterized type?- Returns:
this
for method chaining
-
getMetadataBuildingOptions
Description copied from interface:MetadataBuilderImplementor
Get the options being collected on this MetadataBuilder that will ultimately be used in building the Metadata.- Specified by:
getMetadataBuildingOptions
in interfaceMetadataBuilderImplementor
- Returns:
- The current building options
-
build
Description copied from interface:MetadataBuilder
Actually build the metamodel- Specified by:
build
in interfaceMetadataBuilder
- Returns:
- The built metadata.
-