1

由于我是 Grails 和动态语言的新手,我确实有一些“希望很简单”的问题。

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

def customerSet = Customer.findAllBycustomerID(params.customerID)

我得到了两个查询,但不能按我的意愿组合。我尝试了类似的东西

def hits = customerSet.findAllByTag(tag)

但后来我得到一个

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

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

还是我必须以某种方式这样做:

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

谢谢,克拉斯

4

1 回答 1

1

我不确定这是否适用于可标记但您可以使用具有两个属性的动态查找器,例如 .findAllByCustomerIdAndTag(customerId,tag)

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

Customer.createCriteria().list{
    eq('customerId',someCustomerId)
    tags{
        eq('name',someTag')
    }
}
于 2009-11-12T21:56:52.233 回答