File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed
hibernate-core/src/main/java/org/hibernate/type Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -269,12 +269,20 @@ else if ( typeConfiguration.getJavaTypeRegistry().resolveDescriptor( javaType.ge
269269if ( basicTypeReferences != null && !basicTypeReferences .isEmpty () ) {
270270final var jdbcTypeRegistry = typeConfiguration .getJdbcTypeRegistry ();
271271for ( var typeReference : basicTypeReferences ) {
272- if ( jdbcTypeRegistry .getDescriptor ( typeReference .getSqlTypeCode () ) == jdbcType ) {
273- final var basicType = typesByName .get ( typeReference .getName () );
274- //noinspection unchecked
275- return registeredTypeMatches ( javaType , jdbcType , basicType )
276- ? (BasicType <J >) basicType
277- : (BasicType <J >) createBasicType ( typeReference .getName (), typeReference );
272+ if ( typeReference .getJavaType () == javaType .getJavaTypeClass () ) {
273+ @ SuppressWarnings ("unchecked" ) // safe, we just checked
274+ final var castTypeReference = (BasicTypeReference <J >) typeReference ;
275+ if ( jdbcTypeRegistry .getDescriptor ( typeReference .getSqlTypeCode () ) == jdbcType ) {
276+ final var basicType = typesByName .get ( typeReference .getName () );
277+ if ( registeredTypeMatches ( javaType , jdbcType , basicType ) ) {
278+ @ SuppressWarnings ("unchecked" ) // safe, we checked in registeredTypeMatches()
279+ final var castType = (BasicType <J >) basicType ;
280+ return castType ;
281+ }
282+ else {
283+ return createBasicType ( castTypeReference .getName (), castTypeReference );
284+ }
285+ }
278286}
279287}
280288}
You can’t perform that action at this time.
0 commit comments