diff --git a/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java b/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java index f1fd746..c1fd547 100644 --- a/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java +++ b/src/main/java/tech/ailef/snapadmin/external/SnapAdmin.java @@ -26,6 +26,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Optional; import java.util.Set; import org.slf4j.Logger; @@ -182,6 +183,14 @@ public class SnapAdmin { return findSchemaByClassName(klass.getName()); } + /** + * Returns whether this class is managed by SnapAdmin + */ + public boolean isManagedClass(Class klass) { + Optional hasSchema = + schemas.stream().filter(s -> s.getClassName().equals(klass.getName())).findFirst(); + return hasSchema.isPresent(); + } /** * This method processes a BeanDefinition into a DbObjectSchema object, diff --git a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java index 1da5804..8001166 100644 --- a/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java +++ b/src/main/java/tech/ailef/snapadmin/external/dbmapping/DbObjectSchema.java @@ -287,7 +287,9 @@ public class DbObjectSchema { List res = getFields().stream().filter(f -> { return f.getPrimitiveField().getAnnotation(OneToMany.class) != null || f.getPrimitiveField().getAnnotation(ManyToMany.class) != null; - }).collect(Collectors.toList()); + }) + .filter(f -> snapAdmin.isManagedClass(f.getConnectedType())) + .collect(Collectors.toList()); return res; }