0

grails のセッターに問題があります。beforeTax と afterTax の 2 つのプロパティがあります。db beforeTax にプロパティを 1 つだけ格納したい。UI では、税前または税後のいずれかをユーザーに入力してもらいます。そこで、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 がこの変数を DB に保存しようとするのを防ぐために、1 つのプロパティに一時的なフラグを立てる必要があります。を含むドメイン クラスにこの行を追加してみてくださいafterTax

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