Java Hibernate生成的SQL对MS SQL无效
Hibernate(HQL)生成了以下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
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,这是我意想不到的。