如何从类(控制器)执行自定义查询,该类与我想要结果的域类(表)没有任何关系
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
我必须进口任何东西吗?
答案 0 :(得分: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包中:
另外,尝试对域类使用单数名称:User,而不是用户。
另外,为什么要使用SQL? grails的一个优点是允许您在更高的抽象级别指定查询。
import com.example.domain.User
class AlienController {
def list() {
def result = User.executeQuery( "select distinct a.id from users a" )
}
}