1
У меня есть две таблицы: sales
и products
JPA: Присоединяйтесь к группе по сумме. MySQL запрос
[Products]
+-------+-------------------+
| id | name |
+-------+-------------------+
| 1 | product number 1 |
| 2 | product number 2 |
| 3 | product number 3 |
+-------+-------------------+
[Sales]
+-------+------------+------+
| id | product_id | qty |
+-------+------------+------+
| 1 | 2 | 100 |
| 2 | 2 | 35 |
| 3 | 1 | 1 |
+-------+-------------------+
, которые я хотел, чтобы показать что-то подобное с JavaEE и JPA:
Most selled products :
+------------------+------------+
| Product name | Quantity |
+------------------+------------+
| product number 2 | 135 |
| product number 1 | 1 |
+------------------+------------+
Я столкнулся с двумя проблемами:
- Я знаю только, как извлекать объекты, поэтому я мог отображать имя продукта, но не количество проданных, так как это вычисленное значение.
- Я не знаю, как запросить мою базу данных, чтобы получить правильную информацию
Это то, что я пробовал:
public List<Product> getMostSelledProducts() {
Query q = em.createQuery("SELECT p FROM Sale s RIGHT JOIN Product p GROUP BY s.productId ORDER BY COUNT(s.productId)");
return q.getResultList();
}
Как мне сделать такую вещь?
Спасибо :) Но тогда, какой должен быть тип ответа? Я не могу вернуть продукт, так как я потерял бы информацию о количестве ... – mimipc
Не могли бы вы вернуть только список вместо списка? –
spullen