Смущен отношениями и HQL-запросами в CF ORM - PullRequest
1 голос
/ 30 марта 2012

Для простоты предположим, что у меня есть две сущности, настроенные следующим образом:

Topic.cfc

/**
 * @accessors true
 * @persistent true
 */
component {

    /**
     * @fieldtype id
     * @generator uuid
     * @sqltype varchar(35)
     */
    property topicID;

    /**
     * @type array
     * @fieldtype one-to-many
     * @cfc Response
     * @fkcolumn topicID
     * @singularname response
     */
    property responses;
}

Response.cfc

/**
 * @accessors true
 * @persistent true
 */
component {

    /**
     * @fieldtype id
     * @generator uuid
     * @sqltype varchar(35)
     */
    property responseID;

    /**
     * @type date
     * @ormtype timestamp
     */
    property responseTime;
}

Мне нужно выполнить HQL-запрос (или нет, вы говорите мне ...), который вернет все ответы по указанной теме в течение указанного диапазона дат.

Мой запрос в настоящее время выглядит следующим образом:

var params = {
    'start' = startDate,
    'end' = endDate,
    'topicID' = topicID
};
var responses = ormExecuteQuery('
    from Response
    where responseTime >= :start
    and responseTime <= :end
    and Topic.topicID = :topicID
', params );

Возвращает следующую ошибку: could not resolve property: Topic of: Response [ from Response as r where r.responseTime >= :start and r.responseTime <= :end and r.Topic.topicID = :topicID ]

Я пытался присоединиться:

from Response as r
join r.Topic as t
...

Но это приводит к той же ошибке. Не совсем уверен, куда идти отсюда. Заранее спасибо!

1 Ответ

2 голосов
/ 30 марта 2012

Как написано в запросе, предполагается, что существует связь между Ответом и темой, чего нет в зависимости от вашего кода.

Уверен, что если вы добавите эту связь в Response, запрос будет работать.

...