2017-01-31 3 views
0

複数のプロジェクトビルドとしてプラグインに移動したドメインクラスがいくつかあります。何らかの理由で、彼らはもはやMapコンストラクタを受け入れません。例えば、私が呼び出すことができる前に:Grails 3 - プラグインに移動したときにマップコンストラクタを使用できないドメイン

def instance = new UserRole(user: user, role: role) 

しかし、私は、プラグインにドメインクラスを移動した後、私は次のエラーを取得する:

Error on startup: Could not find matching constructor for: com.testcompany.UserRole(java.util.LinkedHashMap) 

は私が再度有効にするために必要なものはありますプラグインで名前付きパラメータを自動的に受け入れるためのドメインクラス?

Grails 3.2.3を使用しています。

+0

マップコンストラクタを使用することができます。完全なスタックトレースと設定ファイルを表示できますか? –

+0

私は自分のコンピュータにいませんが、明日はスタックトレースを取得できます。私はデフォルトのWebプロファイルの代わりにプラグインプロファイルを使ってプラグインを作成しましたが、私は設定ファイルを変更しませんでした。 – Anonymous1

答えて

0

マップコンストラクタは、データバインディングロジックをコンストラクタに組み込むため、その依存関係をプラグインに追加する必要があるため、ウェブ環境でドメインクラスを排他的に使用する予定がある場合にのみ追加されます(grails-plugin-controllers)。

そうしないと、あなたは常に適切に動作するはずbindData(instance, [user: user, role: role])

+0

私はあなたの答えを受け入れている間、私はプラグインをデフォルトのWebプロファイルとしてリメイクすることに決めました。私がプラグインプロファイルから得たメリットをWebプロファイルで失ってしまった場合は、Webプロファイルを使ってプラグインプロファイルを使用することもできます。 – Anonymous1

関連する問題