Java Hibernate生成的SQL对MS SQL无效

Java Hibernate生成的SQL对MS SQL无效,java,sql-server,hibernate,Java,Sql Server,Hibernate,Hibernate(HQL)生成了以下SQL,我为其插入了参数: select sum(activity0_.calculated_work) as col_0_0_ , employee2_.id as col_1_0_ , projectele1_.id as col_2_0_ from activity activity0_ inner join generic_object activity0_1_ on activity0_.id=activity0_1_.id left

Hibernate(HQL)生成了以下SQL,我为其插入了参数:

select 
sum(activity0_.calculated_work) as col_0_0_
, employee2_.id as col_1_0_
, projectele1_.id as col_2_0_ 

from 
activity activity0_ 
inner join generic_object activity0_1_ on activity0_.id=activity0_1_.id 
left outer join project_element projectele1_ on     activity0_.project_element_id=projectele1_.id 
left outer join employee employee2_ on activity0_.owner_id=employee2_.id 
left outer join org_unit orgunit3_ on employee2_.org_unit_id=orgunit3_.id 

where 
activity0_1_.deleted=0 and 
activity0_.client_id=22 

 group by 
 employee2_.id order by SUM(activity0_.calculated_work) DESC
错误消息:列“project_element.id”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中

我在SQLServerStudio中直接执行了这个SQL,并得到了相同的结果。我评论了这句话:

, projectele1_.id as col_2_0_ 
SQL Server随后接受了SQL

table project_元素肯定有一个名为id的列,它也在左侧外部联接中引用,并且该列不会导致错误

删除别名projectele1_uu无效


对我来说,这看起来像一个非常简单的SQL语句。我无法想象它到底出了什么问题,错误消息根本没有帮助。你知道SQL有什么问题吗?

我错了。我应该把错误信息读几遍。projectele1\u id不在group by子句中。MS SQL不允许将此类列包括在选择列表中。这似乎是一致性检查。
糟糕的是,HQL的使用在SQL Server中导致了这样的异常,但在MySQL Server中却没有。我的错误。我应该把错误信息读几遍。projectele1\u id不在group by子句中。MS SQL不允许将此类列包括在选择列表中。这似乎是一致性检查。
糟糕的是,HQL的使用在SQL Server中导致了这样的异常,但在MySQL Server中却没有。我的错误。我应该把错误信息读几遍。projectele1\u id不在group by子句中。MS SQL不允许将此类列包括在选择列表中。这似乎是一致性检查。
糟糕的是,HQL的使用在SQL Server中导致了这样的异常,但在MySQL Server中却没有。我的错误。我应该把错误信息读几遍。projectele1\u id不在group by子句中。MS SQL不允许将此类列包括在选择列表中。这似乎是一致性检查。
虽然HQL的使用在SQL Server中导致了这种异常,但在MySQL Server中却没有,这太糟糕了。您的SQL语法错误。如果将
projectele1.id
添加到group by子句中,它将起作用。只有聚合函数在带有group by子句的select语句中起作用。或者如果从select中删除
projectele1.id
,它将起作用很好。

您的SQL语法错误。如果将
projectele1.id
添加到group by子句中,它将正常工作。只有聚合函数才能在带有group by子句的select语句中工作。或者,如果从select中删除
projectele1.id
,它将正常工作。

您的SQL语法错误。如果将
projectele1.id
添加到group by子句中,它将正常工作将正常工作。只有聚合函数才能在带有group by子句的select语句中工作。或者,如果从select中删除
projectele1.id
,它将正常工作。

您的SQL语法错误。如果将
projectele1.id
添加到group by子句中,它将正常工作。只有聚合函数才能在带有group by子句的select语句中工作。或者如果删除
projectele1.id
从中选择它可以正常工作。

您知道这是否是SQL标准吗?MySQL确实支持该语句,Hibernate没有生成MS SQL支持的SQL,这是我意想不到的。你知道这是否是SQL标准吗?MySQL确实支持该语句,Hibernate没有生成MS SQL支持的SQL,这是我意想不到的。你知道这是否是SQL标准吗?MySQL确实支持该语句,Hibernate没有生成MS SQL支持的SQL,这是我意想不到的。你知道这是否是SQL标准吗?MySQL确实支持该语句,Hibernate不生成MS SQL支持的SQL,这是我意想不到的。