ColdFusion9和脚本化组件以及hql语法
如何使用新的脚本语法以及CF9中的hibernate查询语言来重写ColdFusion9和脚本化组件以及hql语法,coldfusion,Coldfusion,如何使用新的脚本语法以及CF9中的hibernate查询语言来重写 <cfcomponent output="no"> <cffunction name="Login" output="no"> <cfargument name="UsrName"> <cfargument name="UsrPassword"> <cfquery name="local.qry"> SELECT * FROM UsrV
<cfcomponent output="no">
<cffunction name="Login" output="no">
<cfargument name="UsrName">
<cfargument name="UsrPassword">
<cfquery name="local.qry">
SELECT * FROM UsrView
WHERE UsrName = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.UsrName#">
AND UsrPassword = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.UsrPassword#">
</cfquery>
<cfreturn local.qry>
</cffunction>
</cfcomponent>
从UsrView中选择*
其中UsrName=
和UsrPassword=
这就是你想要的吗
component{
public query function Login(UsrName,UsrPassword){
// get array of entities matching filter
var arrayOfUsers = EntityLoad('User',{
UsrName=arguments.UsrName, UsrPassword=arguments.UsrPassword
});
// convert entity array to a query object
return EntitytoQuery(arrayOfUsers);
}
}
为什么要用Hibernate从视图中进行查询?我允许数据库通过定义包含所有连接的视图来完成繁重的工作。然后我从视图中选择而不是从表格中选择加入表格。哇!太棒了!我想知道是否应该返回ArrayFuser而不是EntitytoQuery(ArrayFuser)?这是一个从头开始的项目,所以我不需要维护遗留代码或方法。现在处理来自SQL Select语句的数据的更好方法是什么?是ArrayFuser还是EntitytoQuery(ArrayFuser)?@cf\u PhilipSenn这取决于:如果实体中有视图层可能需要调用的方法,则返回一个用户数组。如果您需要填充类似cfselect的内容,那么查询就是一种方法。@cf\u PhilipSenn和我认为CFQUERY比EntityToQuery()或HQL更有效。