質問編集履歴

6

説明分の編集

2019/11/06 16:04

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -1,16 +1,6 @@
1
1
  自習用で作っているものです。
2
2
 
3
3
  リポジトリクラスで、結合したテーブルから取得した結果を最終的にTyhmeleafに渡して画面に表示したいです。
4
-
5
-
6
-
7
- telData,telgroupという二つのテーブルを用意し、リポジトリクラスでgroupIdで結合しております。
8
-
9
- その後のservice、controllerの書き方、
10
-
11
- 最終的なTyhmeleafの書き方のヒント等を頂ければ嬉しいです。
12
-
13
- 3日ほど試行錯誤しておりますが、うまく実装できない状態です。
14
4
 
15
5
 
16
6
 
@@ -26,7 +16,7 @@
26
16
 
27
17
  @Id
28
18
 
29
- @GeneratedValue //主キーのIDを採番する役割
19
+ @GeneratedValue
30
20
 
31
21
  private Long id;
32
22
 
@@ -76,7 +66,7 @@
76
66
 
77
67
  @Repository
78
68
 
79
- public interface TelDataRepository extends JpaRepository<User, Long> {
69
+ public interface UserRepository extends JpaRepository<User, Long> {
80
70
 
81
71
 
82
72
 
@@ -86,7 +76,7 @@
86
76
 
87
77
  + "LEFT JOIN group g ON d.group_id = g.group_id",nativeQuery = true)
88
78
 
89
- public List<User> findUserGroup();
79
+ public List<User> findUser();
90
80
 
91
81
  }
92
82
 

5

説明分の編集

2019/11/06 16:04

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  @Entity
22
22
 
23
- public class TelData {
23
+ public class User {
24
24
 
25
25
 
26
26
 
@@ -33,10 +33,6 @@
33
33
 
34
34
 
35
35
  private String userName;
36
-
37
-
38
-
39
- private String telNo;
40
36
 
41
37
 
42
38
 
@@ -58,7 +54,7 @@
58
54
 
59
55
  @Entity
60
56
 
61
- public class TelGroup {
57
+ public class UserGroup {
62
58
 
63
59
 
64
60
 
@@ -80,17 +76,17 @@
80
76
 
81
77
  @Repository
82
78
 
83
- public interface TelDataRepository extends JpaRepository<TelData, Long> {
79
+ public interface TelDataRepository extends JpaRepository<User, Long> {
84
80
 
85
81
 
86
82
 
87
- @Query(value = "SELECT d.id,d.user_name,d.tel_no,d.mail_addr,g.group_name,null AS group_id "
83
+ @Query(value = "SELECT d.id,d.user_name,_no,d.mail_addr,g.group_name,null AS group_id "
88
84
 
89
- + "FROM tel_data d "
85
+ + "FROM user u "
90
86
 
91
- + "LEFT JOIN tel_group g ON d.group_id = g.group_id",nativeQuery = true)
87
+ + "LEFT JOIN group g ON d.group_id = g.group_id",nativeQuery = true)
92
88
 
93
- public List<TelData> findTelDataGroup();
89
+ public List<User> findUserGroup();
94
90
 
95
91
  }
96
92
 
@@ -100,9 +96,9 @@
100
96
 
101
97
  ```Java(service)
102
98
 
103
- public List<TelData> findTelDataGroup() {
99
+ public List<User> findUserGroup() {
104
100
 
105
- return telDataRepository.findTelDataGroup();
101
+ return UserRepository.findUserGroup();
106
102
 
107
103
  }
108
104
 
@@ -120,116 +116,16 @@
120
116
 
121
117
  public class IndexController {
122
118
 
123
-
124
-
125
- /** 一覧画面のサービスクラスのフィールド変数 */
126
-
127
119
  @Autowired
128
120
 
129
121
  private IndexService service;
130
-
131
-
132
-
133
- /**
134
-
135
- * 一覧画面表示メソッド
136
-
137
- *
138
-
139
- * @param model Model
140
-
141
- * @return 一覧画面
142
-
143
- */
144
122
 
145
123
  @RequestMapping(method = RequestMethod.GET)
146
124
 
147
125
  public String index(Model model) {
148
126
 
149
- // 一覧画面用サービス.電話帳データリスト検索処理メソッドを呼び出し、modelに「telDataList」という名前を持つ属性を追加し、
150
-
151
- // 値に電話帳データリスト検索処理メソッドの戻り値を設定する。
152
-
153
- // modelは、フレームワーク提供の画面とJava間でデータをやりとりするためのオブジェクト
154
-
155
- model.addAttribute("telDataList", service.findTelDataList());
156
-
157
- model.addAttribute("telGroupList",service.findTelGroupList());
127
+ model.addAttribute("UserGroup",service.findUserGroup());
158
-
159
- model.addAttribute("telDataGroupList",service.findTelDataGroup());
160
-
161
- // 一覧画面(index.html)を返却
162
128
 
163
129
  return "index";
164
130
 
165
131
  }
166
-
167
- ```
168
-
169
- 下記でhtmlに表示しようとしていますが、エラーがでます。。
170
-
171
- <td th:text="${telGroup.groupName}"></td> の部分です。
172
-
173
- エラー内容:EL1007E: Property or field 'groupName' cannot be found on null
174
-
175
- どのように指定すればいいのかお聞きしたいです。
176
-
177
-
178
-
179
- ```html
180
-
181
- <form th:action="@{delete}" method="post" th:object="${telDataForm}">
182
-
183
- <table class="table table-bordered table-hover" id="table">
184
-
185
- <thead>
186
-
187
- <tr>
188
-
189
- <th class="text-center">選択</th>
190
-
191
- <th class="text-center">氏名</th>
192
-
193
- <th class="text-center">電話番号</th>
194
-
195
- <th class="text-center">メールアドレス</th>
196
-
197
- <th class="text-center">グループ名</th>
198
-
199
- <th class="text-center">編集</th>
200
-
201
- </tr>
202
-
203
- </thead>
204
-
205
- <tbody>
206
-
207
- <tr th:each="telDataGroup : ${telDataGroupList}" >
208
-
209
- <td class="text-center"><input type="checkbox"
210
-
211
- name="selectRecords" th:value="${telDataGroup.id}"></td>
212
-
213
- <td th:text="${telDataGroup.userName}"></td>
214
-
215
- <td th:text="${telDataGroup.telNo}"></td>
216
-
217
- <td th:text="${telDataGroup.mailAddr}"></td>
218
-
219
- <td th:text="${telDataGroup.groupName}"></td>
220
-
221
- <td class="text-center"><a class="btn btn-secondary btn-sm"
222
-
223
-      th:href="@{'/edit?id=' + ${telDataGroup.id}}">編集</a></td>
224
-
225
- </tr>
226
-
227
- </tbody>
228
-
229
- </table>
230
-
231
- <input type="submit" class="btn btn-primary btn-sm" value="削除">
232
-
233
- </form>
234
-
235
- ```

4

説明文の修正

2019/11/06 16:02

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -156,7 +156,7 @@
156
156
 
157
157
  model.addAttribute("telGroupList",service.findTelGroupList());
158
158
 
159
- **model.addAttribute("telDataList",service.findTelDataGroup());**
159
+ model.addAttribute("telDataGroupList",service.findTelDataGroup());
160
160
 
161
161
  // 一覧画面(index.html)を返却
162
162
 
@@ -170,6 +170,8 @@
170
170
 
171
171
  <td th:text="${telGroup.groupName}"></td> の部分です。
172
172
 
173
+ エラー内容:EL1007E: Property or field 'groupName' cannot be found on null
174
+
173
175
  どのように指定すればいいのかお聞きしたいです。
174
176
 
175
177
 
@@ -202,23 +204,23 @@
202
204
 
203
205
  <tbody>
204
206
 
205
- <tr th:each="telData : ${telDataList}" >
207
+ <tr th:each="telDataGroup : ${telDataGroupList}" >
206
208
 
207
209
  <td class="text-center"><input type="checkbox"
208
210
 
209
- name="selectRecords" th:value="${telData.id}"></td>
211
+ name="selectRecords" th:value="${telDataGroup.id}"></td>
210
-
212
+
211
- <td th:text="${telData.userName}"></td>
213
+ <td th:text="${telDataGroup.userName}"></td>
212
-
214
+
213
- <td th:text="${telData.telNo}"></td>
215
+ <td th:text="${telDataGroup.telNo}"></td>
214
-
216
+
215
- <td th:text="${telData.mailAddr}"></td>
217
+ <td th:text="${telDataGroup.mailAddr}"></td>
216
-
218
+
217
- <td th:text="${telGroup.groupName}"></td>
219
+ <td th:text="${telDataGroup.groupName}"></td>
218
220
 
219
221
  <td class="text-center"><a class="btn btn-secondary btn-sm"
220
222
 
221
- th:href="@{'/edit?id=' + ${telData.id}}">編集</a></td>
223
+      th:href="@{'/edit?id=' + ${telDataGroup.id}}">編集</a></td>
222
224
 
223
225
  </tr>
224
226
 

3

説明分の編集

2019/09/22 06:01

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,16 @@
1
+ 自習用で作っているものです。
2
+
1
3
  リポジトリクラスで、結合したテーブルから取得した結果を最終的にTyhmeleafに渡して画面に表示したいです。
2
4
 
5
+
6
+
3
- Tyhmeleafでの<th:text="${telGroup.groupName}">のエラーをどのように対処すれば良いかわかりません
7
+ telData,telgroupという二つのテーブルを用意し、リポジトリクラスでgroupIdで結合しておりま
8
+
9
+ その後のservice、controllerの書き方、
10
+
11
+ 最終的なTyhmeleafの書き方のヒント等を頂ければ嬉しいです。
12
+
13
+ 3日ほど試行錯誤しておりますが、うまく実装できない状態です。
4
14
 
5
15
 
6
16
 

2

説明分の編集

2019/09/22 05:16

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
- テーブルとして、二つのentityクラスを持っていてそのデータを外部結合しhtml表示させたいです。
1
+ リポジトリクラス、結合したテーブルから取得した結果を最終的にTyhmeleafに渡して画面に表示たいです。
2
-
2
+
3
- 外部結合後取得、表示で困っていま
3
+ Tyhmeleafで<th:text="${telGroup.groupName}">のエラをどように対処すれば良かわかりせん
4
4
 
5
5
 
6
6
 

1

タグの編集

2019/09/22 05:07

投稿

icezoom
icezoom

スコア36

test CHANGED
File without changes
test CHANGED
File without changes