使用 ORM 复制 cfoutput 分组
Replicating cfoutput grouping using ORM
我正在转换为 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]
仅限于一个实体名称?
您的结果集不是查询,而是一个数组,因此必须循环。
<cfloop array="#games#" index="game">
<!--- do stuff --->
</cfloop>
就复制可用于查询的内置分组功能而言,我认为数组没有自动方法,因此您需要在组中编写逻辑来执行分组,否则您将返回后需要拆分结果集,并用单独的循环遍历不同的部分。
先用EntityToQuery()
http://cfdocs.org/entitytoquery,再用<cfoutput query=
我正在转换为 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]
仅限于一个实体名称?
您的结果集不是查询,而是一个数组,因此必须循环。
<cfloop array="#games#" index="game">
<!--- do stuff --->
</cfloop>
就复制可用于查询的内置分组功能而言,我认为数组没有自动方法,因此您需要在组中编写逻辑来执行分组,否则您将返回后需要拆分结果集,并用单独的循环遍历不同的部分。
先用EntityToQuery()
http://cfdocs.org/entitytoquery,再用<cfoutput query=