Coldfusion Form Computed Column-它可以调用一个方法,或者包含与SQL相反的通用cfml逻辑吗

Coldfusion Form Computed Column-它可以调用一个方法,或者包含与SQL相反的通用cfml逻辑吗,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,我的持久化模型有一个“状态”字段,可以是0或1 我的模型中有一个名为getStatusLabel()的方法,它根据传递给它的状态返回“Active”或“Retired” public function getStatusLabel(required status){ if (status eq 1) return "Active"; else if (status eq 0) return "Retired";

我的持久化模型有一个“状态”字段,可以是0或1

我的模型中有一个名为getStatusLabel()的方法,它根据传递给它的状态返回“Active”或“Retired”

public function getStatusLabel(required status){
        if (status eq 1)
            return "Active";
        else if (status eq 0)
            return "Retired";
    }
我在想,如果可以将它设置为一个计算列,那就太好了,但我不知道该怎么做。所有计算列示例都有一个SQL语句作为公式

是否可以将这个(或另一个)方法称为我的公式(通过我的模型更容易访问),或者公式需要是SQL语句

或者,可以直接将方法的逻辑作为“公式”包含在内

当我尝试这两种方法时,我得到了一个错误:
无法初始化集合
,所以猜测这是不可能的,但如果可以的话,那将是非常棒的,所以值得一问

非常感谢


Jason

如果在SQL Server中使用计算列,则可以将列定义设置为:

CASE WHEN status = 1 THEN 'Active' ELSE 'Retired' END
将列设置为persistend,这样就不必在每个查询中计算它,然后您就可以在ORM中使用它了。只要确保它被标记为不可更新或不可插入

此外,您还可以让getStatusLabel方法使用对象的status属性,而无需将其作为参数传入:

public function getStatusLabel(){
    if (this.status eq 1)
        return "Active";
    else if (this.status eq 0)
        return "Retired";
}
如果使用该函数,仅引用local status属性,该函数是否如您所期望的那样工作