code: private void addJoinColumnToInfo(String joinColumn, TableInfo targetTableInfo, List<TableInfo> targetTableInfos,
              EntityMetadata m)
      {
          if (!joinColumn.equals(targetTableInfo.getIdColumnName()))
          {
  
              if (!targetTableInfos.isEmpty() && targetTableInfos.contains(targetTableInfo))
              {
                  int idx = targetTableInfos.indexOf(targetTableInfo);
                  targetTableInfo = targetTableInfos.get(idx);
                  ColumnInfo columnInfoOfJoinColumn = getJoinColumn(targetTableInfo, joinColumn,
                          m.getIdAttribute().getBindableJavaType());
                  if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn))
                  {
                      targetTableInfo.addColumnInfo(columnInfoOfJoinColumn);
                  }
              }
              else
              {
                  ColumnInfo columnInfoOfJoinColumn = getJoinColumn(targetTableInfo, joinColumn,
                          m.getIdAttribute().getBindableJavaType());
                  if (!targetTableInfo.getColumnMetadatas().contains(columnInfoOfJoinColumn))
                  {
                      targetTableInfo.addColumnInfo(columnInfoOfJoinColumn);
                  }
                  targetTableInfos.add(targetTableInfo);
              }
          }
      }
docs: adds join column name to the table Info of entity.
  
  @param joinColumn
  @param targetTableInfo
  @param targetTableInfos