/**
     * Retrieve individual subscriptions matching a particular journal ID.
     * @param $journalId int
     * @param $status int
     * @param $searchField int
     * @param $searchMatch string "is" or "contains" or "startsWith"
     * @param $search String to look in $searchField for
     * @param $dateField int 
     * @param $dateFrom String date to search from
     * @param $dateTo String date to search to
     * @return object DAOResultFactory containing matching IndividualSubscriptions
     */
    function &getSubscriptionsByJournalId($journalId, $status = null, $searchField = null, $searchMatch = null, $search = null, $dateField = null, $dateFrom = null, $dateTo = null, $rangeInfo = null)
    {
        $params = array($journalId);
        $searchSql = parent::_generateSearchSQL($status, $searchField, $searchMatch, $search, $dateField, $dateFrom, $dateTo, $params);
        $sql = 'SELECT s.*
				FROM
				subscriptions s,
				subscription_types st,
				users u
				WHERE s.type_id = st.type_id
				AND st.institutional = 0
				AND s.user_id = u.user_id
				AND s.journal_id = ?';
        $result =& $this->retrieveRange($sql . ' ' . $searchSql . ' ORDER BY u.last_name ASC, s.subscription_id', count($params) === 1 ? array_shift($params) : $params, $rangeInfo);
        $returner = new DAOResultFactory($result, $this, '_returnSubscriptionFromRow');
        return $returner;
    }