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 aTypeConfiguration
. We always obtain a reference to aType
via theTypeConfiguration
associated with the current persistence unit.On the other hand, a
Type
does not inherently have access to its parentTypeConfiguration
since extensions may contribute instances ofType
, viaTypeContributions
, for example, and the instantiation of such instances occurs outside the control of Hibernate.In particular, a custom
TypeContributor
may contribute types to aTypeConfiguration
.If a
Type
requires 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 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
public void scope(MetadataBuildingContext metadataBuildingContext)
Scope thisTypeConfiguration
to the givenMetadataBuildingContext
.- Parameters:
metadataBuildingContext
- aMetadataBuildingContext
- Implementation Note:
- The given factory is not yet fully-initialized!
-
scope
public void scope(SessionFactoryImplementor sessionFactory)
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(since="6.2") public SessionFactoryImplementor 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(since="6.2") public ServiceRegistry 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
public JpaCompliance getJpaCompliance()
Obtain theJpaCompliance
setting.
-
entityClassForEntityName
@Internal public Class<?> entityClassForEntityName(String entityName)
Workaround for an issue faced inEntityType.getReturnedClass()
.
-
sessionFactoryCreated
public void sessionFactoryCreated(SessionFactory factory)
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
public void sessionFactoryClosed(SessionFactory factory)
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
public void addBasicTypeRegistrationContributions(List<BasicTypeRegistration> contributions)
-
resolveCastTargetType
public 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
)
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)
-
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
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)
-
-