回答編集履歴

1

追記

2019/12/16 23:17

投稿

rubytomato
rubytomato

スコア1752

test CHANGED
@@ -397,3 +397,39 @@
397
397
 
398
398
 
399
399
  で行いました。
400
+
401
+
402
+
403
+ ### 補足
404
+
405
+
406
+
407
+ 4番目を書き忘れたので補足します。
408
+
409
+
410
+
411
+ #### 4) ビューを使う
412
+
413
+
414
+
415
+ 目的のクエリでビューを作成し、JPA側でそれをエンティティクラスとして定義するという方法もあります。
416
+
417
+
418
+
419
+ ```sql
420
+
421
+ SELECT i.id, i.name, i.image,i.price, c.name, COUNT(i.id)
422
+
423
+ FROM items i INNER JOIN order_items oi ON i.id = oi.item_id
424
+
425
+ INNER JOIN categories c ON c.id = i.category_id
426
+
427
+ GROUP BY i.id, i.name, i.image, i.price, c.name
428
+
429
+ ORDER BY count(i.id) DESC;
430
+
431
+ ```
432
+
433
+
434
+
435
+ この場合、クエリの複雑さをビューに寄せることができるのでJava側の実装は簡単になります。