回答編集履歴
2
修正
answer
CHANGED
|
@@ -250,7 +250,7 @@
|
|
|
250
250
|
highlight.getUpdated_at(),
|
|
251
251
|
highlight.getPublic_flag(),
|
|
252
252
|
highlight.getUser().getName(),
|
|
253
|
-
|
|
253
|
+
highlight.getUser().getDelete_flag());
|
|
254
254
|
}
|
|
255
255
|
```
|
|
256
256
|
|
1
修正
answer
CHANGED
|
@@ -129,16 +129,17 @@
|
|
|
129
129
|
|
|
130
130
|
> java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return using requested result type [models.videos.IndexVideo]
|
|
131
131
|
|
|
132
|
-
この書き方がエラーになる理由は、createQueryメソッドの第2引数にはJPQLが返す
|
|
132
|
+
この書き方がエラーになる理由は、createQueryメソッドの第2引数にはJPQLが返すクラスしか指定できないためです。
|
|
133
|
-
|
|
133
|
+
通常は`@Entity`というクラスアノテーションが付いているクラスになります。
|
|
134
|
-
(なお、IndexVideoに`@Entity`付けても別の理由でエラーになりますので付けることはできません。)
|
|
135
134
|
|
|
135
|
+
なので、JPQLが`SELECT v FROM Video v`の場合、下記のクエリはエラーになります。
|
|
136
|
+
|
|
136
137
|
```Java
|
|
137
138
|
// NG
|
|
138
139
|
List<IndexVideo> videos = em.createQuery(sort, IndexVideo.class);
|
|
139
140
|
```
|
|
140
141
|
|
|
141
|
-
|
|
142
|
+
下記のクエリはエンティティクラスであるVideoを指定しているので問題ありません。
|
|
142
143
|
|
|
143
144
|
```Java
|
|
144
145
|
// OK
|