0

我正在转换为 Coldfusion 的 ORM,想知道如何使用 ORM 复制 cfoutput 的分组?

我收到以下错误:Can't cast Object type [java.util.ArrayList] to a value of type [query]

询问:

qryGames = ormExecuteQuery("from Game where Season.seasonID=:sid and League.leagueID=:lid and Season.User.userID=:uid order by League.leagueName, GameType.gameTypeID, gameDate DESC", {sid=url.sid, lid=leagueID, uid=session.userID});

代码:

<cfif arraylen(qryGames) GT 0>
    <cfoutput query="qryGames" group="leagueName">
        <cfoutput group="gameTypeName">
            ...
        </cfoutput>
    </cfoutput>
</cfif>

我没有看到 cfloop 的分组属性。我总是可以手动复制它,但想知道是否有内置的方法可以做到这一点。

更新#1

使用entityToQuery

qryGames = entityToQuery(ormExecuteQuery("from Game where Season.seasonID=:sid and League.leagueID=:lid and Season.User.userID=:uid order by League.leagueName, GameType.gameTypeID, gameDate DESC", {sid=url.sid, lid=leagueID, uid=session.userID}), "League");

我收到以下错误:

Message     column [gameTypeName] not found in query, columns are [leagueID,leagueName,leagueAbbr,teamName,gameInMinutes,deleteYN,showReportYN]

仅限于一个实体名称?

4

2 回答 2

1

先使用EntityToQuery() http://cfdocs.org/entitytoquery,然后就可以使用了<cfoutput query=

于 2015-11-20T19:13:00.847 回答
1

您的结果集不是查询,而是数组,因此必须循环。

<cfloop array="#games#" index="game">
    <!--- do stuff --->
</cfloop>

至于复制可用于查询的内置分组功能,我不相信数组有自动方式,因此您需要在组中编写逻辑来执行分组,否则您需要拆分结果返回后设置并使用单独的循环遍历不同的部分。

于 2015-11-20T18:49:06.667 回答