質問するログイン新規登録

回答編集履歴

2

修正

2019/12/27 19:48

投稿

rubytomato
rubytomato

スコア1752

answer CHANGED
@@ -250,7 +250,7 @@
250
250
  highlight.getUpdated_at(),
251
251
  highlight.getPublic_flag(),
252
252
  highlight.getUser().getName(),
253
- hghlight.getUser().getDelete_flag());
253
+ highlight.getUser().getDelete_flag());
254
254
  }
255
255
  ```
256
256
 

1

修正

2019/12/27 19:48

投稿

rubytomato
rubytomato

スコア1752

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
- エンティティクラスとは`@Entity`というクラスアノテーションが付いているクラスのことです。
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
- で、エンティティクラスであるVideoを指定した場合は検索
142
+ 下記リはエンティティクラスであるVideoを指定しているの問題ありせん
142
143
 
143
144
  ```Java
144
145
  // OK