在Grails中,如何从第三方数据源应用inList约束?

在Grails中,如何从第三方数据源应用inList约束?,grails,Grails,假设我有以下模型: class Product { String name String price String currency static constraints = { currency inList: ['USD', 'EUR'] } 现在,我们有一个新的要求,即必须从服务中提取inList对currency的约束: class CurrencyService { def getAvailableCurrencies = {

假设我有以下模型:

class Product {
    String name
    String price
    String currency

    static constraints = {
        currency inList: ['USD', 'EUR']
}
现在,我们有一个新的要求,即必须从服务中提取
inList
currency
的约束:

class CurrencyService {
    def getAvailableCurrencies = {
        ...
    }
}
我该怎么做?我试过:

class Product {
    def currencyService
    ...

    static constraints = {
        currency inList: currencyService.getAvailableCurrencies()
    }
}

但是我无法访问
静态约束
上下文中的
currencyService
实例。我还尝试使用了
静态currencyService
,但这同样不起作用。有什么想法吗?

如上所述,您可以使用使用您的服务的:

static constraints = {
    currency validator: { value, obj ->
        if (!(value in obj.currencyService.getAvailableCurrencies())) 
            return ['invalid.currency']
    }
}

这可以提供一些指导