假设我有以下型号:
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
上下文中的static constraints
实例。我也尝试使用static currencyService
,但这同样不起作用。有什么想法吗?
答案 0 :(得分:1)
正如上面提到的dmahapatro,您可以使用使用您服务的custom validator:
static constraints = {
currency validator: { value, obj ->
if (!(value in obj.currencyService.getAvailableCurrencies()))
return ['invalid.currency']
}
}