-2

如何从与我想要结果的域类(表)没有关系的类(控制器)执行自定义查询

class something {
 //query select from anything 
}

class anything{
}

我有一个名为 Users 的域类,它想从另一个 conreoller 访问它。执行以下操作:

def result = users.executeQuery( "select distinct a.id from users a" );

给我一个错误:No such property: Users for class:something

我必须导入任何东西吗?

4

1 回答 1

1
class something {
    def reallyObscureMethodBecauseYourquestionIsreallyNotClear() {
        def someResults = anything.where {
            whateverProperty == 'whatever condition'
        }.list()
        render(view:'someOtherView',model:[crazyunspecificModel:someResults])
    }     

}

class anything{
}

说真的,你可以多花点力气来构建你的问题,从我的立场来看,这是一个懒惰的问题。

更新

所以这可能是你第一次尝试任何接近 JVM 的东西,对吧?

如果您想使用一个类,您需要导入它,如果您的控制器与外部类位于不同的包中。

如果您的用户类(顺便说一句,约定建议对类使用大写名称,对变量使用非大写名称)在包 com.example.domain 中:

此外,尝试对域类使用单数名称:用户,而不是用户。

另外,为什么要使用 SQL?grails 的优点之一是允许您在更高的抽象级别指定查询。

import com.example.domain.User

class AlienController {
      def list() {
         def result = User.executeQuery( "select distinct a.id from users a" )
      }
}
于 2013-06-03T11:25:51.093 回答