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
Typeis inherently "scoped" to aTypeConfiguration. We always obtain a reference to aTypevia theTypeConfigurationassociated with the current persistence unit.On the other hand, a
Typedoes not inherently have access to its parentTypeConfigurationsince extensions may contribute instances ofType, viaTypeContributions, for example, and the instantiation of such instances occurs outside the control of Hibernate.In particular, a custom
TypeContributormay contribute types to aTypeConfiguration.If a
Typerequires access to the parentTypeConfiguration, it should implementTypeConfigurationAware.- Since:
- 5.3
- See Also:
TypeContributor,TypeContributions, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description TypeConfiguration()
-
Method Summary
-
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
-
-
-
-
Method Detail
-
getUuid
public String getUuid()
-
getBasicTypeRegistry
public BasicTypeRegistry getBasicTypeRegistry()
-
getJavaTypeRegistry
public JavaTypeRegistry getJavaTypeRegistry()
-
getJdbcTypeRegistry
public JdbcTypeRegistry getJdbcTypeRegistry()
-
getDdlTypeRegistry
public DdlTypeRegistry getDdlTypeRegistry()
-
getCurrentBaseSqlTypeIndicators
public JdbcTypeIndicators getCurrentBaseSqlTypeIndicators()
-
getJdbcToHibernateTypeContributionMap
public Map<Integer,Set<String>> getJdbcToHibernateTypeContributionMap()
-
getMetadataBuildingContext
@Deprecated(since="6.2") public MetadataBuildingContext getMetadataBuildingContext()
Deprecated.This operation is not very typesafe, and we're migrating away from its useObtain theMetadataBuildingContextcurrently scoping thisTypeConfiguration.- Returns:
- The
MetadataBuildingContext - API Note:
- Throws an exception if the
TypeConfigurationis no longer scoped to theMetadataBuildingContext. SeeTypeConfiguration.Scopefor more details regarding the stages aTypeConfigurationpasses through.
-
scope
public void scope(MetadataBuildingContext metadataBuildingContext)
Scope thisTypeConfigurationto the givenMetadataBuildingContext.- Parameters:
metadataBuildingContext- aMetadataBuildingContext- Implementation Note:
- The given factory is not yet fully-initialized!
-
scope
public void scope(SessionFactoryImplementor sessionFactory)
Scope thisTypeConfigurationto the givenSessionFactory.- Parameters:
sessionFactory- aSessionFactorythat is in a very fragile state- Implementation Note:
- The given factory is not yet fully-initialized!
-
getSessionFactory
@Deprecated(since="6.2") public SessionFactoryImplementor getSessionFactory()
Deprecated.This operation is not very typesafe, and we're migrating away from its useObtain theSessionFactorycurrently scoping thisTypeConfiguration.- Returns:
- The
SessionFactoryto which thisTypeConfigurationis scoped - Throws:
HibernateException- if theTypeConfigurationis not currently scoped to aSessionFactory(in a "runtime stage").- API Note:
- Throws an exception if the
TypeConfigurationis not yet scoped to a factory. SeeTypeConfiguration.Scopefor more details regarding the stages aTypeConfigurationpasses through (this is a "runtime stage").
-
getServiceRegistry
@Deprecated(since="6.2") public ServiceRegistry getServiceRegistry()
Deprecated.This simply isn't a very sensible place to hang theServiceRegistryObtain theServiceRegistryscoped to thisTypeConfiguration.- Returns:
- The
ServiceRegistryfor the current scope - API Note:
- The current
TypeConfiguration.Scopewill determine from where theServiceRegistryis obtained.
-
getJpaCompliance
public JpaCompliance getJpaCompliance()
Obtain theJpaCompliancesetting.
-
entityClassForEntityName
@Internal public Class<?> entityClassForEntityName(String entityName)
Workaround for an issue faced inEntityType.getReturnedClass().
-
sessionFactoryCreated
public void sessionFactoryCreated(SessionFactory factory)
Description copied from interface:SessionFactoryObserverCallback to indicate that the given factory has been created and is now ready for use.- Specified by:
sessionFactoryCreatedin interfaceSessionFactoryObserver- Parameters:
factory- The factory initialized.
-
sessionFactoryClosed
public void sessionFactoryClosed(SessionFactory factory)
Description copied from interface:SessionFactoryObserverCallback 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:
sessionFactoryClosedin interfaceSessionFactoryObserver- Parameters:
factory- The factory closed.
-
addBasicTypeRegistrationContributions
public void addBasicTypeRegistrationContributions(List<BasicTypeRegistration> contributions)
-
resolveCastTargetType
public BasicValuedMapping resolveCastTargetType(String name)
Understands the following target type names for thecast()function:StringCharacterByte,Short,Integer,LongFloat,DoubleTime,Date,TimestampLocalDate,LocalTime,LocalDateTimeBigIntegerBigDecimalBinaryBoolean(fragile, not aware of encoding to character viaCharBooleanConverter)
The type names are not case-sensitive.
-
resolveTupleType
public SqmExpressible<?> resolveTupleType(List<? extends SqmTypedNode<?>> typedNodes)
-
resolveArithmeticType
public SqmExpressible<?> resolveArithmeticType(SqmExpressible<?> firstType, SqmExpressible<?> secondType, BinaryArithmeticOperator operator)
- See Also:
QueryHelper.highestPrecedenceType2(org.hibernate.query.sqm.SqmExpressible<? extends X>, org.hibernate.query.sqm.SqmExpressible<? extends X>)
-
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.- See Also:
QueryHelper.highestPrecedenceType2(org.hibernate.query.sqm.SqmExpressible<? extends X>, org.hibernate.query.sqm.SqmExpressible<? extends X>)
-
getBasicTypeForGenericJavaType
public <J> BasicType<J> getBasicTypeForGenericJavaType(Class<? super J> javaType, Type... typeArguments)
-
standardBasicTypeForJavaType
public <J> BasicType<J> standardBasicTypeForJavaType(Class<J> javaType)
-
standardBasicTypeForJavaType
public <J> BasicType<J> standardBasicTypeForJavaType(Class<J> javaType, Function<JavaType<J>,BasicType<J>> creator)
-
standardBasicTypeForJavaType
public <J> BasicType<J> standardBasicTypeForJavaType(Type javaType, Function<JavaType<J>,BasicType<J>> creator)
-
getSqlTemporalType
public TemporalType getSqlTemporalType(SqmExpressible<?> type)
-
getSqlTemporalType
public static TemporalType getSqlTemporalType(JdbcMapping jdbcMapping)
-
getSqlTemporalType
public static TemporalType getSqlTemporalType(JdbcMappingContainer jdbcMappings)
-
getSqlTemporalType
public static TemporalType getSqlTemporalType(MappingModelExpressible<?> type)
-
getSqlTemporalType
public static TemporalType getSqlTemporalType(JdbcType descriptor)
-
getSqlTemporalType
protected static TemporalType getSqlTemporalType(int jdbcTypeCode)
-
getSqlIntervalType
public static IntervalType getSqlIntervalType(JdbcMappingContainer jdbcMappings)
-
getSqlIntervalType
public static IntervalType getSqlIntervalType(JdbcType descriptor)
-
getSqlIntervalType
protected static IntervalType getSqlIntervalType(int jdbcTypeCode)
-
isJdbcTemporalType
public static boolean isJdbcTemporalType(SqmExpressible<?> type)
-
isDuration
public static boolean isDuration(SqmExpressible<?> type)
-
createMutabilityPlan
@Internal public <J> MutabilityPlan<J> createMutabilityPlan(Class<? extends MutabilityPlan<?>> planClass)
-
-