final public function seekJoin($tableName, array $columns,
            Row $object = null, array $options = array()) {
        if (!$this->joinQuery) return false;

        $prefix = $this->connection->getTablePrefix() . $tableName . '_';

        if (!$object) {
            $object = new Row();
        }

        $array = array();
        foreach ($this->relationshipData as $data) {
            foreach ($columns as $column => $value) {
                $compare = $prefix . $column;
                if ($data[$compare] === null) continue;
                $found = true;
                if ((!is_array($value) && @$data[$compare] != $value) || (is_array($value) &&
                        !in_array(@$data[$compare], $value))) {
                    $found = false;
                }
                if (!$found) break;
            }

            if ($found) {
                $d = array();
                foreach ($data as $col => $val) {
                    $d[str_replace($prefix, '', $col)] = $val;
                }

                $ob = clone $object;

                $array[] = $ob->populate($d);
            }
        }

        $this->parseWithOptions($array, $options);

        return count($array) ? new ArrayCollection($array) : false;
    }