Package org.hibernate.type.spi
Class TypeConfiguration
java.lang.Object
org.hibernate.type.spi.TypeConfiguration
- All Implemented Interfaces:
Serializable
,SessionFactoryObserver
@Incubating
public class TypeConfiguration
extends Object
implements SessionFactoryObserver, Serializable
Each instance defines a set of types available in a given
persistence unit, and isolates them from other configurations.
Note that each instance of Type
is inherently "scoped" to a
TypeConfiguration
. We always obtain a reference to a Type
via the TypeConfiguration
associated with the current persistence
unit.
On the other hand, a Type
does not inherently have access to its
parent TypeConfiguration
since extensions may contribute instances
of Type
, via TypeContributions
,
for example, and the instantiation of such instances occurs outside the
control of Hibernate.
In particular, a custom TypeContributor
may contribute types to a TypeConfiguration
.
If a Type
requires access to the parent TypeConfiguration
,
it should implement TypeConfigurationAware
.
- Since:
- 5.3
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addBasicTypeRegistrationContributions
(List<BasicTypeRegistration> contributions) <J> MutabilityPlan<J>
createMutabilityPlan
(Class<? extends MutabilityPlan<?>> planClass) Class<?>
entityClassForEntityName
(String entityName) Workaround for an issue faced inEntityType.getReturnedClass()
.<J> BasicType<J>
getBasicTypeForGenericJavaType
(Class<? super J> javaType, Type... typeArguments) <J> BasicType<J>
getBasicTypeForJavaType
(Class<J> javaType) <J> BasicType<J>
getBasicTypeForJavaType
(Type javaType) Obtain theJpaCompliance
setting.Deprecated.This operation is not very typesafe, and we're migrating away from its useDeprecated.This simply isn't a very sensible place to hang theServiceRegistry
Deprecated.This operation is not very typesafe, and we're migrating away from its useprotected static IntervalType
getSqlIntervalType
(int jdbcTypeCode) static IntervalType
getSqlIntervalType
(JdbcMappingContainer jdbcMappings) static IntervalType
getSqlIntervalType
(JdbcType descriptor) protected static TemporalType
getSqlTemporalType
(int jdbcTypeCode) static TemporalType
getSqlTemporalType
(JdbcMapping jdbcMapping) static TemporalType
getSqlTemporalType
(JdbcMappingContainer jdbcMappings) static TemporalType
getSqlTemporalType
(SqmExpressible<?> type) static TemporalType
getSqlTemporalType
(JdbcType descriptor) getUuid()
static boolean
isDuration
(SqmExpressible<?> type) static boolean
isJdbcTemporalType
(SqmExpressible<?> type) resolveArithmeticType
(SqmExpressible<?> firstType, SqmExpressible<?> secondType) Determine the result type of an arithmetic operation as defined by the rules in section 6.5.8.1.resolveArithmeticType
(SqmExpressible<?> firstType, SqmExpressible<?> secondType, BinaryArithmeticOperator operator) BasicType<?>
resolveCastTargetType
(String name) Understands the following target type names for thecast()
function:String
Character
Byte
,Short
,Integer
,Long
Float
,Double
Time
,Date
,Timestamp
LocalDate
,LocalTime
,LocalDateTime
BigInteger
BigDecimal
Binary
Boolean
(fragile, not aware of encoding to character viaCharBooleanConverter
)resolveTupleType
(List<? extends SqmTypedNode<?>> typedNodes) void
scope
(MetadataBuildingContext metadataBuildingContext) Scope thisTypeConfiguration
to the givenMetadataBuildingContext
.void
scope
(SessionFactoryImplementor sessionFactory) Scope thisTypeConfiguration
to the givenSessionFactory
.void
sessionFactoryClosed
(SessionFactory factory) Callback to indicate that the given factory has been closed.void
sessionFactoryCreated
(SessionFactory factory) Callback to indicate that the given factory has been created and is now ready for use.<J> BasicType<J>
standardBasicTypeForJavaType
(Class<J> javaType) <J> BasicType<J>
standardBasicTypeForJavaType
(Class<J> javaType, Function<JavaType<J>, BasicType<J>> creator) BasicType<?>
standardBasicTypeForJavaType
(Type javaType) <J> BasicType<J>
standardBasicTypeForJavaType
(Type javaType, Function<JavaType<J>, BasicType<J>> creator) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.hibernate.SessionFactoryObserver
sessionFactoryClosing
-
Constructor Details
-
TypeConfiguration
public TypeConfiguration()
-
-
Method Details
-
getUuid
-
getBasicTypeRegistry
-
getJavaTypeRegistry
-
getJdbcTypeRegistry
-
getDdlTypeRegistry
-
getCurrentBaseSqlTypeIndicators
-
getJdbcToHibernateTypeContributionMap
-
getMetadataBuildingContext
Deprecated.This operation is not very typesafe, and we're migrating away from its useObtain theMetadataBuildingContext
currently scoping thisTypeConfiguration
.- Returns:
- The
MetadataBuildingContext
- API Note:
- Throws an exception if the
TypeConfiguration
is no longer scoped to theMetadataBuildingContext
. SeeTypeConfiguration.Scope
for more details regarding the stages aTypeConfiguration
passes through.
-
scope
Scope thisTypeConfiguration
to the givenMetadataBuildingContext
.- Parameters:
metadataBuildingContext
- aMetadataBuildingContext
- Implementation Note:
- The given factory is not yet fully-initialized!
-
scope
Scope thisTypeConfiguration
to the givenSessionFactory
.- Parameters:
sessionFactory
- aSessionFactory
that is in a very fragile state- Implementation Note:
- The given factory is not yet fully-initialized!
-
getSessionFactory
Deprecated.This operation is not very typesafe, and we're migrating away from its useObtain theSessionFactory
currently scoping thisTypeConfiguration
.- Returns:
- The
SessionFactory
to which thisTypeConfiguration
is scoped - Throws:
HibernateException
- if theTypeConfiguration
is not currently scoped to aSessionFactory
(in a "runtime stage").- API Note:
- Throws an exception if the
TypeConfiguration
is not yet scoped to a factory. SeeTypeConfiguration.Scope
for more details regarding the stages aTypeConfiguration
passes through (this is a "runtime stage").
-
getServiceRegistry
Deprecated.This simply isn't a very sensible place to hang theServiceRegistry
Obtain theServiceRegistry
scoped to thisTypeConfiguration
.- Returns:
- The
ServiceRegistry
for the current scope - API Note:
- The current
TypeConfiguration.Scope
will determine from where theServiceRegistry
is obtained.
-
getJpaCompliance
Obtain theJpaCompliance
setting. -
entityClassForEntityName
Workaround for an issue faced inEntityType.getReturnedClass()
. -
sessionFactoryCreated
Description copied from interface:SessionFactoryObserver
Callback to indicate that the given factory has been created and is now ready for use.- Specified by:
sessionFactoryCreated
in interfaceSessionFactoryObserver
- Parameters:
factory
- The factory initialized.
-
sessionFactoryClosed
Description copied from interface:SessionFactoryObserver
Callback to indicate that the given factory has been closed. Care should be taken in how (if at all) the passed factory reference is used since it is closed.- Specified by:
sessionFactoryClosed
in interfaceSessionFactoryObserver
- Parameters:
factory
- The factory closed.
-
addBasicTypeRegistrationContributions
-
resolveCastTargetType
Understands the following target type names for thecast()
function:String
Character
Byte
,Short
,Integer
,Long
Float
,Double
Time
,Date
,Timestamp
LocalDate
,LocalTime
,LocalDateTime
BigInteger
BigDecimal
Binary
Boolean
(fragile, not aware of encoding to character viaCharBooleanConverter
)
The type names are not case-sensitive.
-
resolveTupleType
-
resolveArithmeticType
public SqmExpressible<?> resolveArithmeticType(SqmExpressible<?> firstType, SqmExpressible<?> secondType, BinaryArithmeticOperator operator) -
resolveArithmeticType
public SqmExpressible<?> resolveArithmeticType(SqmExpressible<?> firstType, SqmExpressible<?> secondType) Determine the result type of an arithmetic operation as defined by the rules in section 6.5.8.1. -
getBasicTypeForGenericJavaType
-
getBasicTypeForJavaType
-
getBasicTypeForJavaType
-
standardBasicTypeForJavaType
-
standardBasicTypeForJavaType
-
standardBasicTypeForJavaType
-
standardBasicTypeForJavaType
-
getSqlTemporalType
-
getSqlTemporalType
-
getSqlTemporalType
-
getSqlTemporalType
-
getSqlTemporalType
-
getSqlTemporalType
-
getSqlIntervalType
-
getSqlIntervalType
-
getSqlIntervalType
-
isJdbcTemporalType
-
isDuration
-
createMutabilityPlan
@Internal public <J> MutabilityPlan<J> createMutabilityPlan(Class<? extends MutabilityPlan<?>> planClass)
-