protected void doPrepare() { searchColumns = tableFilter.getTable().getColumns(); Select select = tableFilter.getSelect(); if (select != null && tableFilter.isFromTableMate()) { HashSet<Column> columns = New.linkedHashSet(); select.isEverything(ExpressionVisitor.getColumnsVisitor(columns)); ArrayList<Column> selected = New.arrayList(10); for (Column column : columns) { if (table == column.getTable()) { selected.add(column); } } //product_category columns is empty null where visitor this sql //SELECT count(*) FROM product_category a LEFT JOIN (SELECT product_category_id, count(*) //c FROM product GROUP BY product_category_id) b ON a.product_category_id = b.product_category_id; if(!selected.isEmpty()) { searchColumns = selected.toArray(new Column[selected.size()]); } } }