问题描述
有一个表CART_ITEMS
,其中drink_id
是饮料的id
,而order_id
是饮料的顺序id
位于count
处的是该饮料在订单中的量。您需要显示该表中6种最受欢迎的饮料。我写了SQL查询:
SELECT drink_id,sum(count) as count
FROM cart_items
GROUP BY drink_id
ORDER BY 2 DESC
LIMIT 6
但是我们现在如何在HQL
中重写它?我尝试编写代码,但是Intelij Idea在sum
和limit
函数中发誓。
@Query("select C.drink,sum(count) as count from CartItem C group by C.drink order by 2 DESC limit 6")
List<Drink> getMostPopularDrinks();
CartItem:
@Getter
@Setter
@Entity
@NoArgsConstructor
@Table(name = "cart_items")
public class CartItem {
@Data
@Embeddable
@NoArgsConstructor
@AllArgsConstructor
public static class CartId implements Serializable {
private Long order_id;
private Long drink_id;
}
/**
* key @EmbeddedId
*/
@EmbeddedId
private CartId cartId;
@ManyToOne
@JoinColumn(name = "order_id",referencedColumnName = "id",nullable = false,insertable = false,updatable = false)
private Order order;
@ManyToOne
@JoinColumn(name = "drink_id",updatable = false)
private Drink drink;
/**
* Count of drink
*/
private int count;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)