1

我知道 grails 中的动态查找器仅支持 2 个参数,例如。

artifacts = Artifact.findAllByDocumentAndArtifactType(document,artifactType,[max:limit, offset:startIndex]);

因此,要使用超过 3 个参数,我找到了这个示例并且它有效。但是我需要使用 max 和 offset 运算符。

artifacts = Artifact.findAllWhere(document:document,artifactType:artifactType,status:null,[max:limit, offset:startIndex]);

但是,这会返回整个列表,而不是要求的限制。操作员是否为 findAllwhere 工作?如何使用它或将我的发现限制在一定范围内?

4

2 回答 2

1

您可以使用具有两个以上参数的动态查找器。你应该试试这个动态查找器:

Artifact.findAllByDocumentAndArtifactTypeAndStatusIsNull(document, artifactType, [max:limit,offset:startIndex]) 

希望有帮助

于 2014-10-17T16:40:01.520 回答
1

我找到了一个更优雅的解决方案,它不需要输入超长的动态助手。

您可以将 findAll 与闭包一起使用,如下所示:

artifacts = Artifact.findAll([max:limit, offset:startIndex]) {
      document == document
      artifactType == artifactType
      status == null
}
于 2015-02-03T21:39:12.387 回答