code: protected void populateValue(Object entity, EntityType type, String attr, Object value) {
      // 当有深层次属性
      if (Strings.contains(attr, '.')) {
        if (null != foreignerKeys) {
          boolean isForeigner = isForeigner(attr);
          // 如果是个外键,先根据parentPath生成新的外键实体。
          // 因此导入的是外键,只能有一个属性导入.
          if (isForeigner) {
            String parentPath = Strings.substringBeforeLast(attr, ".");
            ObjectAndType propertyType = populator.initProperty(entity, type, parentPath);
            Object property = propertyType.getObj();
            if (property instanceof Entity<?>) {
              if (((Entity<?>) property).isPersisted()) {
                populator.populateValue(entity, type, parentPath, null);
                populator.initProperty(entity, type, parentPath);
              }
            }
          }
        }
      }
      if (!populator.populateValue(entity, type, attr, value)) {
        transferResult.addFailure(descriptions.get(attr) + " data format error.", value);
      }
    }
docs: Populate single attribute
  
  @param entity
  @param type
  @param attr
  @param value