code: private Object iteratorColumns(EntityMetadata metadata, MetamodelImpl metamodel, EntityType entityType,
          Map<String, Object> relationalValues, Object entity, Row row, Iterator<Definition> columnDefIter) {
          while (columnDefIter.hasNext()) {
              Definition columnDef = columnDefIter.next();
              final String columnName = columnDef.getName(); // column name
  
              DataType dataType = columnDef.getType(); // data type
  
              if (metadata.getRelationNames() != null && metadata.getRelationNames().contains(columnName)
                  && !columnName.equals(((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName())) {
                  Object relationalValue = DSClientUtilities.assign(row, null, metadata, dataType.getName(), entityType,
                      columnName, null, metamodel);
                  relationalValues.put(columnName, relationalValue);
              } else {
                  String fieldName = columnName.equals(((AbstractAttribute) metadata.getIdAttribute()).getJPAColumnName())
                      ? metadata.getIdAttribute().getName() : metadata.getFieldName(columnName);
                  Attribute attribute = fieldName != null ? entityType.getAttribute(fieldName) : null;
  
                  if (attribute != null) {
                      if (!attribute.isAssociation()) {
                          entity = DSClientUtilities.assign(row, entity, metadata, dataType.getName(), entityType,
                              columnName, null, metamodel);
                      }
                  } else if (metamodel.isEmbeddable(metadata.getIdAttribute().getBindableJavaType())) {
                      entity = populateCompositeId(metadata, entity, columnName, row, metamodel,
                          metadata.getIdAttribute(), metadata.getEntityClazz(), dataType);
                  } else {
                      entity = DSClientUtilities.assign(row, entity, metadata, dataType.getName(), entityType, columnName,
                          null, metamodel);
                  }
              }
          }
          return entity;
      }
docs: Iterator columns.
  
  @param metadata
  the metadata
  @param metamodel
  the metamodel
  @param entityType
  the entity type
  @param relationalValues
  the relational values
  @param entity
  the entity
  @param row
  the row
  @param columnDefIter
  the column def iter
  @return the object