1

問題があります。Cicle と呼ばれるドメイン クラスがあり、Measurement と呼ばれる他のドメイン クラスのコレクションから平均をとることによって、そのプロパティの一部の値を計算します。そのため、その Measurements のいずれかが更新された場合、Cicle も更新する必要があります。 .

問題は、beforeUpdate メソッドで平均を計算することですが、Cicle 属性が変更されていない場合、このメソッドはトリガーされず、Cicle が beforeUpdate メソッドで属性を変更すると、変更が保存されません。

これは正常な動作ですか?属性が同じに見えても強制的に保存する方法はありますか? flush: true, validate: false を試してみましたが、運が悪かったのですが、常に保存する前にメソッドを呼び出す必要がありましたか? またはこれはバグであり、grails に通知する必要がありますか? または、代わりに実装する必要があるベストプラクティスはありますか?

ありがとう

4

2 に答える 2

2

Measurement と呼ばれる他のドメイン クラスのコレクションから平均を作成することによって、そのプロパティの一部の値を計算する Cicle と呼ばれるドメイン クラスがあるため、その Measurements のいずれかが更新された場合、Cicle も更新する必要があります。

平均を一時的な属性にすることを検討しましたか? これにより、必要なときにのみ計算を実行し、データベースのスペースを節約できます。

于 2014-05-02T18:42:54.350 に答える