回答編集履歴

2

追記

2024/06/11 19:01

投稿

jimbe
jimbe

スコア13230

test CHANGED
@@ -19,3 +19,5 @@
19
19
  private String subCategoryName;
20
20
  }
21
21
  ```
22
+
23
+ もしかしたら `final` フィールドが無ければ `@Data` の内包する `@RequiredArgsConstructor` でデフォルトコンストラクタが作られて、 `@NoArgsConstructor` は要らない可能性…

1

マークダウン等追加

2024/06/11 18:38

投稿

jimbe
jimbe

スコア13230

test CHANGED
@@ -1,10 +1,10 @@
1
- >java.lang.NoSuchMethodException: com.example.jrOrder.entity.product.<init>()
1
+ >`java.lang.NoSuchMethodException: com.example.jrOrder.entity.product.<init>()`
2
2
 
3
3
  コードが何をしようとしているかはともかく、エラーメッセージを見る限り『 product クラスにデフォルトコンストラクタ (引数が一つも無いコンストラクタ) が無い』と言われています。
4
4
 
5
- 実際提示されている product クラスには定義されていません。ですのでデフォルトコンストラクタを定義するか、 lombok の @NoArgsConstructor アノーテーションが使えるでしょう。
5
+ 実際提示されている product クラスには定義されていません。ですのでデフォルトコンストラクタを定義するか、 lombok の `@NoArgsConstructor` アノーテーションが使えるでしょう。
6
6
 
7
- また、デフォルトコンストラクタを定義した場合、 product クラスの各フィールドが final になっていると、恐らくエラー発生元がやろうとしているであろう『デフォルトコンストラクタでオブジェクトを生成した後に各フィールドに値を設定する』ことが出来ませんので、 final を外す必要もあるでしょう。
7
+ また、デフォルトコンストラクタを定義した場合、 product クラスの各フィールドが `final` になっていると、恐らくエラー発生元がやろうとしているであろう『デフォルトコンストラクタでオブジェクトを生成した後に各フィールドに値を設定する』ことが出来ませんので、 `final` を外す必要もあるでしょう。
8
8
 
9
9
  つまり product クラスの定義を以下のようにすることになると思います。
10
10
  **※実行環境がありませんので動作確認はしていません。**