code: protected void ensureColumns(List columns, List existingColumns)
      {
          if (columns == null || columns.isEmpty())
          {
              return;
          }
          
          Iterator iter = columns.iterator();
  
          while (iter.hasNext())
          {
              FieldHelper cf = (FieldHelper) iter.next();
              if (!existingColumns.contains(cf.name))
              {
                  getAttributeInfo(cf.name, false, null, getQuery().getPathClasses());
              }
          }
      }
docs: Builds the Join for columns if they are not found among the existingColumns.
  @param columns the list of columns represented by Criteria.Field to ensure
  @param existingColumns the list of column names (String) that are already appended