--- C:\project\MetamodelImpl.java 2018-04-16 15:00:38.193608600 -0400
+++ C:\project\src\main\java\org\hibernate\metamodel\internal\MetamodelImpl.java 2018-04-16 15:21:41.331046300 -0400
@@ -87,6 +87,7 @@
private final Map<String, EntityTypeImpl<?>> jpaEntityTypesByEntityName = new ConcurrentHashMap<>();
private final transient Map<String,EntityGraph> entityGraphMap = new ConcurrentHashMap<>();
+ private final Map<String,String[]> implementorsMap = new ConcurrentHashMap<>();
public MetamodelImpl(SessionFactoryImplementor sessionFactory) {
this.sessionFactory = sessionFactory;
@@ -542,7 +543,9 @@
* @throws MappingException
*/
public String[] getImplementors(String className) throws MappingException {
-
+ if(implementorsMap.containsKey(className)){
+ return implementorsMap.get(className);
+ }
final Class clazz;
try {
clazz = getSessionFactory().getServiceRegistry().getService( ClassLoaderService.class ).classForName( className );
@@ -586,7 +589,10 @@
}
}
}
- return results.toArray( new String[results.size()] );
+
+ String[] ret = results.toArray( new String[results.size()] );
+ implementorsMap.put(className, ret);
+ return ret;
}
@Override
\ No newline at end of file