grailsパラメーターマップをJson文字列に解析してから、パラメーターマップに戻そうとしています。(制約違反のあるhtmlフォームエントリを保存する場合)
パラメータマップにhasMany関係がない限り、すべて問題ありません。
使っています
fc.parameter = params as JSON
パラメータをJSON文字列として保存します。
後で、パラメータマップを再構築し、それを使用して新しいドメインオブジェクトを作成しようとしています。
new Foo(JSON.parse(fc.parameter))
1:1の関係(状態)のみを使用して、すべてが正常です。
[states:2, listSize:50, name:TestFilter]
しかし、複数選択値(状態)を使用してparams-mapを再構築しようとすると
[states:[1,2], listSize:50, name:TestFilter]
私はこのIllegalStateExceptionを取得しています:
Failed to convert property value of type org.codehaus.groovy.grails.web.json.JSONArray to required type java.util.Set for property states; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [de.gotosec.approve.State] for property states[0]: no matching editors or conversion strategy found
私はこれを使おうとしましたが、成功しませんでした:
JSON.use("deep") {
new Foo(JSON.parse(fc.parameter))
}