質問編集履歴

3

コメントアウト追加

2018/06/25 05:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -202,9 +202,9 @@
202
202
 
203
203
  CriteriaBuilder builder = manager.getCriteriaBuilder();
204
204
 
205
- CriteriaQuery<MyPersonData> query = builder.createQuery(MyPersonData.class);
205
+ CriteriaQuery<MyPersonData> query = builder.createQuery(MyPersonData.class); //☆ここでエラー
206
-
206
+
207
- Root<MyPersonData> root = query.from(MyPersonData.class);
207
+ Root<MyPersonData> root = query.from(MyPersonData.class);//☆ここでもエラー
208
208
 
209
209
  query.select(root);
210
210
 

2

ソースコードの追加

2018/06/25 05:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,12 +32,54 @@
32
32
 
33
33
  ```ここに言語を入力
34
34
 
35
+ package jp.tuyano.spring.data1;
36
+
37
+
38
+
39
+ import java.io.IOException;
40
+
41
+ import java.util.List;
42
+
43
+
44
+
45
+ import javax.servlet.ServletException;
46
+
47
+ import javax.servlet.http.HttpServlet;
48
+
49
+ import javax.servlet.http.HttpServletRequest;
50
+
51
+ import javax.servlet.http.HttpServletResponse;
52
+
53
+
54
+
55
+ import org.springframework.beans.factory.annotation.Autowired;
56
+
57
+
58
+
59
+ /**
60
+
61
+ * Servlet implementation class MyPersonDataServlet
62
+
63
+ */
64
+
65
+ public class MyPersonDataServlet extends BeanAutoWiringFilterServlet {
66
+
67
+ private static final long serialVersionUID = 1L;
68
+
69
+
70
+
35
71
  @Autowired
36
72
 
37
73
  private MyPersonDataDaoImpl dao;
38
74
 
39
75
 
40
76
 
77
+ /**
78
+
79
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
80
+
81
+ */
82
+
41
83
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
42
84
 
43
85
  List<MyPersonData> list = dao.getAllEntity();
@@ -48,6 +90,32 @@
48
90
 
49
91
  }
50
92
 
93
+
94
+
95
+ /**
96
+
97
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
98
+
99
+ */
100
+
101
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
102
+
103
+ String name = request.getParameter("name");
104
+
105
+ String mail = request.getParameter("mail");
106
+
107
+ List<MyPersonData> list = repository.findByNameLikeOrMailLike("%" + name + "%", "%" + mail + "%");
108
+
109
+ request.setAttribute("entities", list);
110
+
111
+ request.getRequestDispatcher("/index.jsp").forward(request, response);
112
+
113
+ }
114
+
115
+ }
116
+
117
+
118
+
51
119
  ```
52
120
 
53
121
 
@@ -56,27 +124,171 @@
56
124
 
57
125
  ```ここに言語を入力
58
126
 
59
-
60
-
61
- @PersistenceContext
62
-
63
- private EntityManager manager;
64
-
65
-
66
-
67
- public List<MyPersonData> getAllEntity() {
68
-
69
- CriteriaBuilder builder = manager.getCriteriaBuilder();
70
-
71
- CriteriaQuery<MyPersonData> query = builder.createQuery(MyPersonData.class); //☆ここでエラー
72
-
73
- Root<MyPersonData> root = query.from(MyPersonData.class); //☆ここでもエラー
74
-
75
- query.select(root);
76
-
77
- List<MyPersonData> list = (List<MyPersonData>)manager.createQuery(query).getResultList();
78
-
79
- return list;
127
+ package jp.tuyano.spring.data1;
128
+
129
+
130
+
131
+ import java.util.List;
132
+
133
+
134
+
135
+ import javax.persistence.EntityManager;
136
+
137
+ import javax.persistence.EntityTransaction;
138
+
139
+ import javax.persistence.PersistenceContext;
140
+
141
+ import javax.persistence.Query;
142
+
143
+ import javax.persistence.criteria.CriteriaBuilder;
144
+
145
+ import javax.persistence.criteria.CriteriaQuery;
146
+
147
+ import javax.persistence.criteria.Root;
148
+
149
+
150
+
151
+ import org.springframework.beans.factory.annotation.Autowired;
152
+
153
+ import org.springframework.context.ApplicationContext;
154
+
155
+ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
156
+
157
+ import org.springframework.stereotype.Service;
158
+
159
+
160
+
161
+ import jp.tuyano.spring.data1.MyPersonData;
162
+
163
+
164
+
165
+ @Service
166
+
167
+ public class MyPersonDataDaoImpl<MyPersonData> extends AbstractMyPersonDataDao {
168
+
169
+
170
+
171
+ private static final int MyPersonData = 0;
172
+
173
+
174
+
175
+ @Autowired
176
+
177
+ private ApplicationContext context;
178
+
179
+
180
+
181
+ @Autowired
182
+
183
+ private LocalContainerEntityManagerFactoryBean factory;
184
+
185
+
186
+
187
+ @PersistenceContext
188
+
189
+ private EntityManager manager;
190
+
191
+
192
+
193
+ public MyPersonDataDaoImpl() {
194
+
195
+ init();
196
+
197
+ }
198
+
199
+
200
+
201
+ public List<MyPersonData> getAllEntity() {
202
+
203
+ CriteriaBuilder builder = manager.getCriteriaBuilder();
204
+
205
+ CriteriaQuery<MyPersonData> query = builder.createQuery(MyPersonData.class);
206
+
207
+ Root<MyPersonData> root = query.from(MyPersonData.class);
208
+
209
+ query.select(root);
210
+
211
+ List<MyPersonData> list = (List<MyPersonData>)manager.createQuery(query).getResultList();
212
+
213
+ return list;
214
+
215
+ }
216
+
217
+
218
+
219
+ public List<MyPersonData> findByField(String field, String find) {
220
+
221
+ Query query = manager.createQuery("from MyPersonData where " + field + " = '" + find + "'");
222
+
223
+ return query.getResultList();
224
+
225
+ }
226
+
227
+
228
+
229
+ public void addEntity(Object entity) {
230
+
231
+ EntityManager manager = factory.getNativeEntityManagerFactory().createEntityManager();
232
+
233
+ EntityTransaction transaction = manager.getTransaction();
234
+
235
+ transaction.begin();
236
+
237
+ manager.persist(entity);
238
+
239
+ System.out.println("add:" + entity);
240
+
241
+ manager.flush();
242
+
243
+ transaction.commit();
244
+
245
+ }
246
+
247
+
248
+
249
+ public void updateEntity(Object entity) {
250
+
251
+ EntityManager manager = factory.getNativeEntityManagerFactory().createEntityManager();
252
+
253
+ EntityTransaction transaction = manager.getTransaction();
254
+
255
+ transaction.begin();
256
+
257
+ manager.merge(entity);
258
+
259
+ manager.flush();
260
+
261
+ transaction.commit();
262
+
263
+ }
264
+
265
+
266
+
267
+ public void removeEntity(Object data) {
268
+
269
+ EntityManager manager = factory.getNativeEntityManagerFactory().createEntityManager();
270
+
271
+ EntityTransaction transaction = manager.getTransaction();
272
+
273
+ transaction.begin();
274
+
275
+ manager.remove(data);
276
+
277
+ manager.flush();
278
+
279
+ transaction.commit();
280
+
281
+ }
282
+
283
+
284
+
285
+ public void removeEntity(Long id) {
286
+
287
+ jp.tuyano.spring.data1.MyPersonData entity = manager.find(jp.tuyano.spring.data1.MyPersonData.class, 1L);
288
+
289
+ this.removeEntity(entity); //dao.removeEntity(entity)
290
+
291
+ }
80
292
 
81
293
  }
82
294
 
@@ -112,23 +324,23 @@
112
324
 
113
325
 
114
326
 
115
- @Id //テーブルのプライマリキーに相当。
327
+ @Id
116
-
328
+
117
- @Column //これを付けることで、そのフィールドがテーブルのカラムであることが示される。
329
+ @Column
118
-
330
+
119
- @GeneratedValue(strategy = GenerationType.AUTO) //strategy=値を生成する方法。値が未入力の場合、自動的に値を生成・保管。
331
+ @GeneratedValue(strategy = GenerationType.AUTO)
120
-
332
+
121
- private long id; //64ビット整数 -9223372036854775808~9223372036854775807
333
+ private long id;
122
-
123
-
124
-
334
+
335
+
336
+
125
- @Column(length=50, nullable=false) //50文字まで。nullダメ。
337
+ @Column(length=50, nullable=false)
126
338
 
127
339
  private String name;
128
340
 
129
341
 
130
342
 
131
- @Column(length=100, nullable=true) //nullいいよ!
343
+ @Column(length=100, nullable=true)
132
344
 
133
345
  private String mail;
134
346
 
@@ -146,7 +358,7 @@
146
358
 
147
359
  public MyPersonData(String name, String mail, int age) {
148
360
 
149
- this(); //初期化?
361
+ this();
150
362
 
151
363
  this.name = name;
152
364
 

1

見出しの追加、参考URLの追加、ソースの追加

2018/06/25 05:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -82,7 +82,153 @@
82
82
 
83
83
  ```
84
84
 
85
+ MyPersonData.java
86
+
87
+ ```ここに言語を入力
88
+
89
+ package jp.tuyano.spring.data1;
90
+
91
+
92
+
93
+ import javax.persistence.Column;
94
+
95
+ import javax.persistence.Entity;
96
+
97
+ import javax.persistence.GeneratedValue;
98
+
99
+ import javax.persistence.GenerationType;
100
+
101
+ import javax.persistence.Id;
102
+
103
+ import javax.persistence.Table;
104
+
105
+
106
+
107
+ @Entity
108
+
109
+ @Table(name="mypersondata")
110
+
111
+ public class MyPersonData {
112
+
113
+
114
+
115
+ @Id //テーブルのプライマリキーに相当。
116
+
117
+ @Column //これを付けることで、そのフィールドがテーブルのカラムであることが示される。
118
+
119
+ @GeneratedValue(strategy = GenerationType.AUTO) //strategy=値を生成する方法。値が未入力の場合、自動的に値を生成・保管。
120
+
121
+ private long id; //64ビット整数 -9223372036854775808~9223372036854775807
122
+
123
+
124
+
125
+ @Column(length=50, nullable=false) //50文字まで。nullダメ。
126
+
127
+ private String name;
128
+
129
+
130
+
131
+ @Column(length=100, nullable=true) //nullいいよ!
132
+
133
+ private String mail;
134
+
135
+
136
+
137
+ @Column(nullable=true)
138
+
139
+ private int age;
140
+
141
+
142
+
143
+ public MyPersonData() {}
144
+
145
+
146
+
85
- MyPersonData.javaはただのアクセサ(setter/getter)なので省きます。
147
+ public MyPersonData(String name, String mail, int age) {
148
+
149
+ this(); //初期化?
150
+
151
+ this.name = name;
152
+
153
+ this.mail = mail;
154
+
155
+ this.age = age;
156
+
157
+ }
158
+
159
+
160
+
161
+ public long getId() {
162
+
163
+ return id;
164
+
165
+ }
166
+
167
+
168
+
169
+ public String getName() {
170
+
171
+ return name;
172
+
173
+ }
174
+
175
+
176
+
177
+ public void setName(String name) {
178
+
179
+ this.name = name;
180
+
181
+ }
182
+
183
+
184
+
185
+ public String getMail() {
186
+
187
+ return mail;
188
+
189
+ }
190
+
191
+
192
+
193
+ public void setMail(String mail) {
194
+
195
+ this.mail = mail;
196
+
197
+ }
198
+
199
+
200
+
201
+ public int getAge() {
202
+
203
+ return age;
204
+
205
+ }
206
+
207
+
208
+
209
+ public void setAge(int age) {
210
+
211
+ this.age = age;
212
+
213
+ }
214
+
215
+
216
+
217
+ @Override
218
+
219
+ public String toString() {
220
+
221
+ return "MyPersonData [id=" + id + ", name=" + name + ", mail=" + mail + ", age=" + age + "]";
222
+
223
+ }
224
+
225
+ }
226
+
227
+ ```
228
+
229
+ ### やってみたこと
230
+
231
+
86
232
 
87
233
 
88
234
 
@@ -102,4 +248,12 @@
102
248
 
103
249
 
104
250
 
105
- どうぞよろくお願い致します。
251
+ ### 参考にたURL
252
+
253
+ https://waman.hatenablog.com/entry/20101003/1286102501
254
+
255
+ http://enterprisegeeks.hatenablog.com/entry/2015/03/16/075859
256
+
257
+ https://docs.oracle.com/javaee/6/api/javax/persistence/criteria/CriteriaQuery.html
258
+
259
+ https://docs.oracle.com/javaee/6/api/javax/persistence/criteria/Root.html