我有两张桌子:sales
和products
[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();
}
我该怎么做这样的事情?