【发布时间】:2013-11-11 12:26:46
【问题描述】:
我需要一个相对简单的查询,但是 JPA 使得创建它有点困难。
SQL 变体如下所示:
SELECT COUNT(DISTINCT OrderID) AS DistinctOrders FROM Orders WHERE CustomerID=7;
[编辑:OrderID 不是主键。表中可以有多个相等的OrderId]
我需要使用传递给我的方法的变量设置CustomerID。
我在 CriteriaQuery distinct() 上找到了文档,但我似乎无法将它们全部打包在一起。
这是我目前所拥有的:
CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Order> c = cb.createQuery( Order.class );
Root<Order> order = c.from( Order.class );
Path<String> customerID = order.get( "customerID" );
c.where( cb.equal( customerID, theId ) );
【问题讨论】:
-
JPQL? "SELECT COUNT(o.orderID) FROM Orders o WHERE o.customerID = :customerID GROUP BY o.orderID"