Grails:如何组合findAll和findAll By Tag

时间:2009-11-12 17:25:50

标签: grails tags findall

因为我是Grails和动态语言的新手,所以我确实有一些“希望简单”的问题。

我安装了taggable插件,工作正常。有一个带有标签的阵列。我使用findAllByTag为每个标签收集数据集。之后,我随机选择并选择一个条目。效果很好。现在我决定不从DB中获取所有对象。我只需要一个特定的creteria(DB列customerID)。这看起来像这样:

def customerSet = Customer.findAllBycustomerID(params.customerID)

我有两个查询工作,但无法按我的意愿组合。我试过像

这样的东西
def hits = customerSet.findAllByTag(tag)

但后来我得到了

  

groovy.lang.MissingMethodException:没有方法签名:java.util.ArrayList.findAllByTag()适用于参数类型:(java.lang.String)values:[mac]

我想我不能在这样的列表上做一个findAllByTag。

或者我必须这样做:

def customerSet = Customer.findAllBycustomerID(params.customerID.findAllByTag(tag)) ???

感谢, 克拉斯

1 个答案:

答案 0 :(得分:1)

我不确定这是否适用于taggable,但您可以使用具有两个属性的动态查找程序,例如.findAllByCustomerIdAndTag(客户ID,标签)

如果这不起作用,您可以使用标准,例如

Customer.createCriteria().list{
    eq('customerId',someCustomerId)
    tags{
        eq('name',someTag')
    }
}