grails 3.1.4 を使用して、一時的なプロパティを使用して値をバインドするのに問題があります。
このドメインを例にとると:
class Domain {
Boolean b1
Boolean b2
Boolean b3
void setPropertyList(propertyList) {
if(propertyList.contains('someValue'))
this.b1 = true
}
static transients = ['propertyList']
static constraints = {
propertyList bindable: true
}
}
propertyList
データ バインディングに特定のプロパティ (ここでは: ) を使用したいと思います。このプロパティはデータ バインディング ソースでは使用できますが、私のドメインでは使用できません。そこで、トランジェントとセッターを追加しました。propertyList
データ バインディングにトランジェントを含めるために、bindable
制約を追加しました。
セッターsetPropertyList
は、データ バインディング中に呼び出されます。結果のドメイン インスタンスのプロパティには、すべてのプロパティが期待どおりに設定されています。しかし、結果のインスタンスを保存しようとすると、次の例外が発生します。
groovy.lang.GroovyRuntimeException: Cannot read write-only property: propertyList
at org.grails.validation.ConstrainedPropertyBuilder.doInvokeMethod(ConstrainedPropertyBuilder.java:74)
grails がインスタンスの検証に問題を抱えているようです。
これを修正する方法はありますか?