code: private Set<Resource> extractRelationshipField(List<Resource> sourceResources, ResourceField relationshipField, QueryAdapter queryAdapter, Map<ResourceIdentifier, Resource> resourceMap,
  			Map<ResourceIdentifier, Object> entityMap, boolean lookUp) {
  		Set<Resource> loadedEntities = new HashSet<>();
  		for (Resource sourceResource : sourceResources) {
  			ResourceIdentifier id = sourceResource.toIdentifier();
  
  			Object source = entityMap.get(id);
  			if (source != null && !(source instanceof Resource)) {
  				Object targetEntity = PropertyUtils.getProperty(source, relationshipField.getUnderlyingName());
  
  				if (!lookUp && Iterable.class.isAssignableFrom(relationshipField.getType()) && targetEntity == null) {
  					throw new InternalServerErrorException(id + " relationship field collection '" + relationshipField.getJsonName() + "' can not be null. Either set the relationship as an empty "
  							+ Iterable.class.getCanonicalName() + " or add annotation @" + JsonApiLookupIncludeAutomatically.class.getCanonicalName());
  				}
  				if (targetEntity == null) {
  					continue;
  				}
  				List<Resource> targetIds = setupRelation(sourceResource, relationshipField, targetEntity, queryAdapter, resourceMap, entityMap);
  				loadedEntities.addAll(targetIds);
  			}
  		}
  		return loadedEntities;
  	}
docs: No lookup specified for the field. Attempt to load relationship from
  original POJOs. Throw an InternalServerErrorException if the field is an
  Iterable and null.