上下文:Netbeans 8.0.1,JSF 2.2,Primefaces 5.0,JDK 1.7,eclipseLink 2.5.2
似乎查询不保留min和max: 这是我的jpql语句:
Query query = em.createQuery("SELECT po.customerId.customerId, MAX(po.shippingCost),
MIN(po.shippingCost), COUNT(po.orderNum) countligne,
COUNT(DISTINCT po.productId.productId)\n"
+"FROM PurchaseOrder po WHERE po.customerId.customerId = :Id
GROUP BY` po.customerId.customerId");
这是eclipselink logging sql:
SELECT t0.CUSTOMER_ID, COUNT(t1.ORDER_NUM), COUNT(DISTINCT(t2.PRODUCT_ID))
FROM CUSTOMER t0, PRODUCT t2, PURCHASE_ORDER t1 WHERE ((t1.CUSTOMER_ID = ?)
AND ((t0.CUSTOMER_ID = t1.CUSTOMER_ID) AND (t2.PRODUCT_ID = t1.PRODUCT_ID)))
GROUP BY t0.CUSTOMER_ID
出了什么问题?
答案 0 :(得分:1)
似乎计数字段别名扰乱了eclipselink,导致结果列列表不准确:
..., COUNT(po.orderNum) countligne, ...
当我压制' countline'别名,每件事情都很完美。
最奇怪的是,当没有渲染聚合字段时,没有任何错误,甚至是警告。