gpt4 book ai didi

java - group by 子句上的 jdbc.SQLServerException

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:49 24 4
gpt4 key购买 nike

在我的项目中执行此代码时:

Integer countObj = (Integer) ht.findByCriteria(criteria.setProjection(Projections.rowCount())).get(0);      

我得到以下异常:

com.microsoft.sqlserver.jdbc.SQLServerException: Column "PRODUCT_TASK.PRODUCT_TASK_ID" is invalid in the ORDER BY clause because it is not contained in either an aggregate function or the GROUP BY clause."

这里我使用两个表。

  • Product_task,以 product_task_id 作为主键
  • Product_info,以 product_info_id 作为主键

product_info_idProduct_task 的外键。

通过执行该查询,我将获得计数。

我在日志中收到此 SQL 查询:

select count(*) as Count from PRODUCT_TASK pt inner join
PRODUCT_INFO pin on pt.PRODUCT_INFO_ID=pin.PRODUCT_INFO_ID
where pin.UPC like ? order by pt.PRODUCT_TASK_ID asc**

我知道如何更改 SQL 查询(需要有 group by 子句),但我不知道如何修改 Hibernate 查询以获得结果。

最佳答案

您只需要使用 Projections's .groupProperty() method在您的条件中。

groupProperty

public static PropertyProjection groupProperty(String propertyName)

A grouping property value

你的代码将是这样的:

Integer countObj = (Integer) ht.findByCriteria(criteria.setProjection(Projections.rowCount()
.add(Projections.groupProperty("product_task_id"))))
.get(0);

关于java - group by 子句上的 jdbc.SQLServerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44041898/

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