diff --git a/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java b/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java index 9c1e32b24d..27f1f6e768 100644 --- a/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java +++ b/ems-core/src/main/java/it/integry/ems_model/base/EntityBase.java @@ -1377,7 +1377,13 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter UniqueKeyRules.chkConstraint(connection, this); List fields = getEntityHolder() - .getEntitySqlFields(this.getClass()); + .getEntityFields(this.getClass(), field -> + field.isObjectStorage() || + field.isSqlField() || + field.isClob() || + field.isBlob() || + field.isIdentity() + ); final List> preparedFieldsToQuery = prepareFieldsToQuery(fields); // preparedField: 1 = sql_field_name, 2 = value_to_save, 3 = is_identity @@ -1391,7 +1397,7 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter .findFirst() .orElse(null); - if(identityData != null) { + if (identityData != null) { containsIdentity = true; identityFieldName = identityData.getFirst(); } diff --git a/ems-core/src/main/java/it/integry/ems_model/base/EntityPropertyHolder.java b/ems-core/src/main/java/it/integry/ems_model/base/EntityPropertyHolder.java index cd0c93d65a..523db7b931 100644 --- a/ems-core/src/main/java/it/integry/ems_model/base/EntityPropertyHolder.java +++ b/ems-core/src/main/java/it/integry/ems_model/base/EntityPropertyHolder.java @@ -28,6 +28,7 @@ import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.sql.Connection; import java.util.*; +import java.util.function.Predicate; import java.util.stream.Collectors; import static org.reflections.scanners.Scanners.SubTypes; @@ -248,11 +249,12 @@ public class EntityPropertyHolder { } - public List getEntityFields(Class clazz) { + public List getEntityFields(Class clazz, Predicate filterCondition) { return this.entityHierarchyMap.stream() .filter(x -> x.getClazz().equals(clazz)) .map(EntityHierarchy::getFields) .flatMap(Collection::stream) + .filter(filterCondition) .collect(Collectors.toList()); }