8000 HHH-18894 Create and return new EnumJavaType object if class name rep… · hibernate/hibernate-orm@98defd9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 98defd9

Browse files
cigalybeikov
authored andcommitted
HHH-18894 Create and return new EnumJavaType object if class name represents enum that is not currently known
1 parent ecc5723 commit 98defd9

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/JpaMetamodelImpl.java

Lines changed: 15 additions & 1 deletion
8000
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,21 @@ public Set<EmbeddableType<?>> getEmbeddables() {
289289

290290
@Override
291291
public EnumJavaType<?> getEnumType(String className) {
292-
return enumJavaTypes.get( className );
292+
final EnumJavaType<?> enumJavaType = enumJavaTypes.get( className );
293+
if ( enumJavaType != null ) {
294+
return enumJavaType;
295+
}
296+
final ClassLoaderService classLoaderService = serviceRegistry.getService( ClassLoaderService.class );
297+
try {
298+
final Class<Object> clazz = classLoaderService.classForName( className );
299+
if ( clazz == null || !clazz.isEnum() ) {
300+
return null;
301+
}
302+
return new EnumJavaType( clazz );
303+
}
304+
catch (ClassLoadingException e) {
305+
throw new RuntimeException( e );
306+
}
293307
}
294308

295309
@Override

0 commit comments

Comments
 (0)
0