我需要一个相对简单的查询,但是JPA使其有些难以创建。
这个SQL查询看起来像这样:
SELECT COUNT(DISTINCT OrderID) AS DistinctOrders FROM Orders WHERE CustomerID=7;
< p >【编辑: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 ) );