質問編集履歴

2

解決方法を試みた部分を載せました

2019/12/17 01:14

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
File without changes
test CHANGED
@@ -286,6 +286,68 @@
286
286
 
287
287
  ```
288
288
 
289
+ 12/17追記 Goalseq goalseqidに関するものを以下に修正しました。
290
+
291
+ が、同じようなエラーが出てしまいました。
292
+
293
+ ```
294
+
295
+ エラー文
296
+
297
+ Caused by: org.springframework.data.mapping.PropertyReferenceException: No property goalSeq found for type Meisai! Did you mean 'goalseq'?
298
+
299
+ ```
300
+
301
+
302
+
303
+ ```java
304
+
305
+ エンティティ
306
+
307
+ ①Meisaiエンティティ
308
+
309
+ @OneToOne(targetEntity = GoalSeq.class)
310
+
311
+ @JoinColumn(name = "goalseq_id")
312
+
313
+ private GoalSeq goalseq;
314
+
315
+
316
+
317
+ ②GoalSeqエンティティ
318
+
319
+ @OneToOne(mappedBy = "goalseq", cascade = CascadeType.ALL)
320
+
321
+ private Meisai meisai;
322
+
323
+ ```
324
+
325
+ ```java
326
+
327
+ Meisaiリポジトリ
328
+
329
+ public interface MeisaiRepository extends JpaRepository<Meisai, Integer> {
330
+
331
+
332
+
333
+ public Meisai findByGoalSeq(GoalSeq goalseq);
334
+
335
+ }
336
+
337
+ ```
338
+
339
+ ```java
340
+
341
+ Meisaiサービス
342
+
343
+ public Meisai findByGoalSeq(GoalSeq goalseq) {
344
+
345
+ return repository.findByGoalSeq(goalseq);
346
+
347
+ }
348
+
349
+ ```
350
+
289
351
 
290
352
 
291
353
 

1

編集途中で投稿してしまいました。

2019/12/17 01:14

投稿

chocolate_pie
chocolate_pie

スコア26

test CHANGED
@@ -1 +1 @@
1
- Springでプロジェクトのビルド失敗します
1
+ Springビルド失敗 (No property goalSeq found for type Meisai!)
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  エラーメッセージ
16
16
 
17
- ```
17
+
18
18
 
19
19
  ①Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'meisaiService': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'meisaiRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract jp.co.itc.mbo.entity.Meisai jp.co.itc.mbo.repository.MeisaiRepository.findByGoalSeq(jp.co.itc.mbo.entity.GoalSeq)! No property goalSeq found for type Meisai!
20
20
 
@@ -30,13 +30,17 @@
30
30
 
31
31
  ④Caused by: org.springframework.data.mapping.PropertyReferenceException: No property goalSeq found for type Meisai!
32
32
 
33
-
33
+ ```
34
34
 
35
35
 
36
36
 
37
37
  ### 該当のソースコード
38
38
 
39
+
40
+
41
+ エンティティ
42
+
39
- Entityクラス
43
+ ```java
40
44
 
41
45
 
42
46
 
@@ -66,20 +70,250 @@
66
70
 
67
71
  private GoalSeq goalseqid;
68
72
 
73
+
74
+
69
- ```
75
+ ```
76
+
77
+ ```java
78
+
79
+ GoalSeq.java
80
+
81
+ @Entity
82
+
83
+ @Table(name="goals_seq")
84
+
85
+ public class GoalSeq {
86
+
87
+ @Id
88
+
89
+ @Column(name="id")
90
+
91
+ @GeneratedValue(strategy = GenerationType.IDENTITY)//自動採番
92
+
93
+ private int id;
94
+
95
+
96
+
97
+ @OneToOne(mappedBy = "goalseqid", cascade = CascadeType.ALL)
98
+
99
+ private Meisai meisai;
100
+
101
+ //useridをユーザマスタエンティティから参照していますがユーザマスタエンティティの記述は省略します
102
+
103
+ @ManyToOne(targetEntity = UserMaster.class)
104
+
105
+ @JoinColumn(nullable = false, name = "user_id")
106
+
107
+ private UserMaster userid;
108
+
109
+ ```
110
+
111
+ リポジトリ
112
+
113
+ ```java
114
+
115
+ MeisaiRepository.java
116
+
117
+ @Repository
118
+
119
+ public interface MeisaiRepository extends JpaRepository<Meisai, Integer> {
120
+
121
+ public Meisai findByGoalSeq(GoalSeq goalseq);
122
+
123
+ }
124
+
125
+ ```
126
+
127
+ ```java
128
+
129
+ GoalSeqRepository.java
130
+
131
+ @Repository
132
+
133
+ public interface GoalSeqRepository extends JpaRepository<GoalSeq,Integer>{
134
+
135
+ @Query(value="SELECT * FROM goals_seq where delete_flg=false and user_id=:ID order by goal_id DESC ",nativeQuery = true)
136
+
137
+ public List <GoalSeq> findCurrent(@Param("ID")int userid);
138
+
139
+ }
140
+
141
+ ```
142
+
143
+ サービス
144
+
145
+ ```java
146
+
147
+ MeisaiService.java
148
+
149
+
150
+
151
+ @Service
152
+
153
+ public class MeisaiService {
154
+
155
+ //1目標ごとに紐づけられているmeisai_tblの情報をとってくる
156
+
157
+ public Meisai findByGoalSeq(GoalSeq goalseq) {
158
+
159
+ return repository.findByGoalSeq(goalseq);
160
+
161
+ }
162
+
163
+
164
+
165
+ public Meisai save(Meisai meisai) {
166
+
167
+ return repository.save(meisai);
168
+
169
+ }
170
+
171
+ }
172
+
173
+ ```
174
+
175
+ ```java
176
+
177
+ GoalSeqService.java
178
+
179
+ @Service
180
+
181
+ public class GoalSeqService {
182
+
183
+
184
+
185
+ //有効なuseridが含まれるレコードをとってくる
186
+
187
+ public List<GoalSeq> findCurrent(int userid) {
188
+
189
+ return repository.findCurrent( userid);
190
+
191
+
192
+
193
+ public GoalSeq save(GoalSeq goalseq) {
194
+
195
+ return repository.save(goalseq);
196
+
197
+ }
198
+
199
+ }
200
+
201
+ ```
202
+
203
+ コントローラー
204
+
205
+ ```java
206
+
207
+ @Controller
208
+
209
+ public class DisplayController {
210
+
211
+ @Autowired
212
+
213
+ GoalSeqService goalseqservice;
214
+
215
+ @Autowired
216
+
217
+ MeisaiService meisaiservice;
218
+
219
+ @Autowired
220
+
221
+ UserMasterService usermasterservice;
222
+
223
+ @RequestMapping("/{id}") //idはユーザのIDだよ
224
+
225
+ public String showGoal(@PathVariable int id, Model model) {
226
+
227
+
228
+
229
+ //ユーザ情報の取得
230
+
231
+ UserMaster usermaster = usermasterservice.findOne(id);
232
+
233
+
234
+
235
+
236
+
237
+ //自分の目標内容とウェイトを表示す
238
+
239
+ int userid = usermaster.getId();
240
+
241
+ List<GoalSeq> goalseqs = goalseqservice.findCurrent(userid);
242
+
243
+ model.addAttribute("goalseqs", goalseqs);
244
+
245
+
246
+
247
+ //本人、上長コメントを表示する
248
+
249
+ Meisai meisai0 = meisaiservice.findByGoalSeq(goalseqs.get(0));
250
+
251
+ Meisai meisai1 = meisaiservice.findByGoalSeq(goalseqs.get(1));
252
+
253
+ Meisai meisai2 = meisaiservice.findByGoalSeq(goalseqs.get(2));
254
+
255
+ Meisai meisai3 = meisaiservice.findByGoalSeq(goalseqs.get(3));
256
+
257
+ Meisai meisai4 = meisaiservice.findByGoalSeq(goalseqs.get(4));
258
+
259
+
260
+
261
+ model.addAttribute("meisai0", meisai0);
262
+
263
+ model.addAttribute("meisai1", meisai1);
264
+
265
+ model.addAttribute("meisai2", meisai2);
266
+
267
+ model.addAttribute("meisai3", meisai3);
268
+
269
+ model.addAttribute("meisai4", meisai4);
270
+
271
+
272
+
273
+ return "goals/goal_list";
274
+
275
+
276
+
277
+ }
278
+
279
+
280
+
281
+ }
282
+
283
+
284
+
285
+
286
+
287
+ ```
288
+
289
+
290
+
291
+
70
292
 
71
293
 
72
294
 
73
295
  ### 試したこと
74
296
 
75
-
76
-
77
- ここに問題に対ししたことを記載してください。
297
+ ・OneToOneの書き方が間違っいないか確認した
298
+
299
+ ・MeisaiサービスとリポジトリのfindByGoalSeq変数が含まれるところをコメントアウトしたらビルドが通るが、コメントアウトした部分のデータを取る書き方が分からず困った。
78
300
 
79
301
 
80
302
 
81
303
  ### 補足情報(FW/ツールのバージョンなど)
82
304
 
83
-
84
-
85
- ここにより詳細な情報を記載してください
305
+ DB定義情報です
306
+
307
+ Meisai_tbl
308
+
309
+ ![イメージ説明](e16b8113252e734fc0d10abdb90b4264.png)
310
+
311
+ goals_seq
312
+
313
+ ![イメージ説明](eb53c516d73e30dd65a24f5034552862.png)
314
+
315
+
316
+
317
+ goals_seqのidをMeisaiのgoalseq_idに紐づけたいです。
318
+
319
+ 数時間調べても分かりませんでした、初心者で至らない部分が多数ありますがよろしくお願いします。