Hibernate 对CF ORM中的关系和HQL查询感到困惑

Hibernate 对CF ORM中的关系和HQL查询感到困惑,hibernate,orm,coldfusion,coldfusion-9,Hibernate,Orm,Coldfusion,Coldfusion 9,为了简单起见,假设我有两个实体,配置如下: Topic.cfc /** * @accessors true * @persistent true */ component { /** * @fieldtype id * @generator uuid * @sqltype varchar(35) */ property topicID; /** * @type array * @fieldtype on

为了简单起见,假设我有两个实体,配置如下:

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;
}
/**
 * @accessors true
 * @persistent true
 */
component {

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

    /**
     * @type date
     * @ormtype timestamp
     */
    property responseTime;
}
响应。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;
}
/**
 * @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 );

但这会导致同样的错误。我真的不知道从这里到哪里去。提前谢谢

如前所述,该查询假设从响应到主题之间存在一种关系,而根据您的代码,这种关系并不存在


可以肯定的是,如果您将该关系添加到响应中,查询将起作用。

啊,太简单了!我只是稍微改变了一下查询:
从主题转换为t加入t.responses r其中r.responseTime>=:start和r>responseTime