2016-11-28 10 views
-2

私はスプリングデータにデフォルトのコンストラクタを実装しないと例外がスローされることがあります。私はその理由を理解しません。助言してくださいデフォルトのコンストラクタをスプリングデータで提供する必要がある理由

+1

関連するコードを投稿してください。 –

+2

は、クラスのインスタンスを作成し、リフレクションまたはセッターを介して変数を設定できる必要があるためです。デフォルトのコンストラクタを提供しない場合、フレームワークがインスタンスを作成するためのクリーンな方法はありません。なぜなら、それらのインスタンスはどの値を渡すべきなのでしょうか? – luk2302

答えて

3

最初は、明確にするために、default constructorではありません(デフォルトコンストラクタを明示的に実装していないため、デフォルトと呼ばれています)。ゼロパラメータのコンストラクタです。

最初にオブジェクトを作成して(0パラメータのコンストラクタを使用)、個々のフィールド値を割り当てるため、ほとんどのオブジェクト/リレーショナルマッパーで実装する必要があります。

コンストラクタを実装していない場合、コンパイラが提供するデフォルトのコンストラクタは、ほとんどのORマッパー(私はスプリングデータを使用していません)で十分であるはずです。デフォルトでは、クラスと同じアクセシビリティを持つ0パラメータのコンストラクタです。しかし、コンストラクタを実装すると、コンパイラはデフォルトを作成せず、ゼロパラメータコンストラクタを自分で指定する必要があります。

関連する問題