0

我对 grails 中的二传手有疑问。我有两个属性 beforeTax 和 afterTax。我只想在税前的数据库中存储一个属性。在用户界面中,我希望用户在税前或税后输入。所以我把 afterTax 变成了这样的临时属性:

double getAfterTax(){
  return beforeTax * tax
}

void setAfterTax(double value){
  beforeTax = value / tax
}

当我现在输入税后值并想保存对象时,验证失败(税前值不能为空值)

我究竟做错了什么?

4

2 回答 2

1

如果我正确理解您的问题,您想根据 afterTax 的值计算 beforeTax?

您可以使用事件处理程序方法 beforeXXX() 其中 XXX 是 Validate、Insert 和 Update 来计算 beforeTax。那么 beforeTax 的约束可以为 nullable:false。

def beforeValidate() {
   computeBeforeTax() 
}
于 2012-01-11T23:22:31.293 回答
0

您必须将一个属性标记为瞬态,以防止 GORM 尝试将此变量保存到数据库中。尝试将此行添加到您的域类中,其中包含afterTax.

static transients = ['afterTax']
于 2011-10-30T13:43:32.530 回答