gpt4 book ai didi

java - 实体管理器 : min and max are not retained by Query

转载 作者:行者123 更新时间:2023-12-01 12:12:41 26 4
gpt4 key购买 nike

上下文: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 日志记录 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

出了什么问题?

最佳答案

似乎count字段别名干扰了eclipselink,导致结果列列表不准确:

..., COUNT(po.orderNum) countligne, ...

当我抑制“countline”别名时,一切都很完美。

最奇怪的是,当聚合字段未呈现时,没有任何错误,甚至警告。

关于java - 实体管理器 : min and max are not retained by Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27191466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com