我知道grails中的dyanmic finders只支持2个参数 例如
artifacts = Artifact.findAllByDocumentAndArtifactType(document,artifactType,[max:limit, offset:startIndex]);
因此,为了使用3个以上的参数,我发现了这个example并且它有效。但是我需要使用max和offset运算符。
artifacts = Artifact.findAllWhere(document:document,artifactType:artifactType,status:null,[max:limit, offset:startIndex]);
然而,这会返回整个列表而不是要求的限制。运算符是否适用于findAllwhere?如何使用它或限制我的发现在一定范围内?
答案 0 :(得分:1)
您可以使用具有两个以上参数的动态查找器。你应该试试这个动态查找器:
Artifact.findAllByDocumentAndArtifactTypeAndStatusIsNull(document, artifactType, [max:limit,offset:startIndex])
希望有所帮助
答案 1 :(得分:1)
我发现了一个更优雅的解决方案,并不需要输入超级单片长动态助手。
您可以将findAll与闭包一起使用,如下所示:
artifacts = Artifact.findAll([max:limit, offset:startIndex]) {
document == document
artifactType == artifactType
status == null
}