Merge remote-tracking branch 'origin/main'

This commit is contained in:
开源海哥 2023-08-09 15:27:20 +08:00
commit a6b29da390

View File

@ -44,7 +44,7 @@ public class LambdaUtil {
public static <T> Class<?> getImplClass(LambdaGetter<T> getter) { public static <T> Class<?> getImplClass(LambdaGetter<T> getter) {
SerializedLambda lambda = getSerializedLambda(getter); SerializedLambda lambda = getSerializedLambda(getter);
return getImplClass(lambda); return getImplClass(lambda, getter.getClass().getClassLoader());
} }
@ -56,9 +56,10 @@ public class LambdaUtil {
public static <T> QueryColumn getQueryColumn(LambdaGetter<T> getter) { public static <T> QueryColumn getQueryColumn(LambdaGetter<T> getter) {
ClassLoader classLoader = getter.getClass().getClassLoader();
SerializedLambda lambda = getSerializedLambda(getter); SerializedLambda lambda = getSerializedLambda(getter);
String methodName = lambda.getImplMethodName(); String methodName = lambda.getImplMethodName();
Class<?> entityClass = getImplClass(lambda); Class<?> entityClass = getImplClass(lambda, classLoader);
TableInfo tableInfo = TableInfoFactory.ofEntityClass(entityClass); TableInfo tableInfo = TableInfoFactory.ofEntityClass(entityClass);
return tableInfo.getQueryColumnByProperty(PropertyNamer.methodToProperty(methodName)); return tableInfo.getQueryColumnByProperty(PropertyNamer.methodToProperty(methodName));
} }
@ -77,11 +78,11 @@ public class LambdaUtil {
} }
private static Class<?> getImplClass(SerializedLambda lambda) { private static Class<?> getImplClass(SerializedLambda lambda, ClassLoader classLoader) {
String implClass = getImplClassName(lambda); String implClass = getImplClassName(lambda);
return MapUtil.computeIfAbsent(classMap, implClass, s -> { return MapUtil.computeIfAbsent(classMap, implClass, s -> {
try { try {
return Class.forName(s.replace("/", ".")); return Class.forName(s.replace("/", "."), true, classLoader);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
throw FlexExceptions.wrap(e); throw FlexExceptions.wrap(e);
} }