Skip to content

Commit dea55b0

Browse files
committed
HHH-18894 Create and return new EnumJavaType object if class name represents enum that is not currently known
1 parent 2807cf6 commit dea55b0

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
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,21 @@ public Set<EmbeddableType<?>> getEmbeddables() {
319319

320320
@Override
321321
public EnumJavaType<?> getEnumType(String className) {
322-
return enumJavaTypes.get( className );
322+
final EnumJavaType<?> enumJavaType = enumJavaTypes.get( className );
323+
if ( enumJavaType != null ) {
324+
return enumJavaType;
325+
}
326+
final ClassLoaderService classLoaderService = serviceRegistry.getService( ClassLoaderService.class );
327+
try {
328+
final Class<Object> clazz = classLoaderService.classForName( className );
329+
if ( clazz == null || !clazz.isEnum() ) {
330+
return null;
331+
}
332+
return new EnumJavaType( clazz );
333+
}
334+
catch (ClassLoadingException e) {
335+
throw new RuntimeException( e );
336+
}
323337
}
324338

325339
@Override

0 commit comments

Comments
 (0)