public void updateEntityAttributeValidations( List<EntityAttributeValidation> validations, Entity updatedEntity, String attributeName) throws ApplicationException { if (validations == null) { return; } Entity existing = entityDefinitionDao.loadEntity(updatedEntity.getEntityVersionId()); EntityAttribute existingAttribute = existing.findAttributeByName(attributeName); List<EntityAttributeValidation> existingValidations = loadEntityAttributeValidations(existingAttribute); Map<Integer, EntityAttributeValidation> newValidationById = new HashMap<Integer, EntityAttributeValidation>(); for (EntityAttributeValidation validation : validations) { if (validation.getEntityAttributeValidationId() != null) { newValidationById.put(validation.getEntityAttributeValidationId(), validation); } } // remove deleted validations for (EntityAttributeValidation validation : existingValidations) { if (newValidationById.get(validation.getEntityAttributeValidationId()) == null) { deleteEntityAttributeValidation(validation); } } for (EntityAttributeValidation newValidation : validations) { if (newValidation.getEntityAttributeValidationId() != null) { updateEntityAttributeValidation(newValidation); } else { addEntityAttributeValidation(newValidation); } } }