Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Hibernate日志进行的ved非常清楚,问题在于您通过Java构建的查询。您是否尝试在pgAdminIII上执行相同的查询?如果运行独立查询,将收到相同的错误_Java_Postgresql_Hibernate_Jpa - Fatal编程技术网

通过Hibernate日志进行的ved非常清楚,问题在于您通过Java构建的查询。您是否尝试在pgAdminIII上执行相同的查询?如果运行独立查询,将收到相同的错误

通过Hibernate日志进行的ved非常清楚,问题在于您通过Java构建的查询。您是否尝试在pgAdminIII上执行相同的查询?如果运行独立查询,将收到相同的错误,java,postgresql,hibernate,jpa,Java,Postgresql,Hibernate,Jpa,您面临的问题是,您在GROUP BY子句中使用的列在SELECT列列表中不可用。如果您将查询更改为类似这样的内容,那么您应该能够运行查询而不会出现任何问题 SELECT r.release.protected_, r.release.releaseType, r.version FROM ReleaseCategory r WHERE r.release.lifecycleStatus = :lifecycleStatus AND

您面临的问题是,您在
GROUP BY
子句中使用的列在
SELECT
列列表中不可用。如果您将查询更改为类似这样的内容,那么您应该能够运行查询而不会出现任何问题

SELECT  r.release.protected_, 
        r.release.releaseType, 
        r.version  
FROM ReleaseCategory r 
WHERE   r.release.lifecycleStatus = :lifecycleStatus 
        AND r.release.releaseType IS NOT NULL
GROUP BY r.release.protected_, r.release.releaseType, r.version
您似乎没有像问题中提到的那样使用此查询,但是您在
GROUP BY
子句中添加了两个额外的列,它们不在
SELECT
列列表中

您在问题中提供的
JAVA
代码片段需要更改


希望这能回答你的问题

您通过Hibernate日志收到的错误消息非常清楚,问题在于您通过Java构建的查询。您是否尝试在
pgAdminIII
上执行相同的查询?如果运行独立查询,将收到相同的错误

您面临的问题是,您在
GROUP BY
子句中使用的列在
SELECT
列列表中不可用。如果您将查询更改为类似这样的内容,那么您应该能够运行查询而不会出现任何问题

SELECT  r.release.protected_, 
        r.release.releaseType, 
        r.version  
FROM ReleaseCategory r 
WHERE   r.release.lifecycleStatus = :lifecycleStatus 
        AND r.release.releaseType IS NOT NULL
GROUP BY r.release.protected_, r.release.releaseType, r.version
您似乎没有像问题中提到的那样使用此查询,但是您在
GROUP BY
子句中添加了两个额外的列,它们不在
SELECT
列列表中

您在问题中提供的
JAVA
代码片段需要更改


希望这能回答你的问题

问题已经解决。我更改了查询,如下所示

Select r.release.protected_, r.release.releaseType, r.version  FROM 
ReleaseCategory r where r.release.lifecycleStatus = :lifecycleStatus and 
r.release.releaseType is not null 
group by r.release.protected_, r.release.releaseType, r.version`
append(“来自releaser类别,其中 r、 elease.lifecycleStatus=:lifecycleStatus“;sqlString.append(“和 r、 release.releaseType不为空“);append(“分组依据 r、 release.protected,r.release.releaseType.id,r.version.id,r.id ");

它工作得很好


谢谢大家。

问题已经解决。我更改了查询,如下所示

Select r.release.protected_, r.release.releaseType, r.version  FROM 
ReleaseCategory r where r.release.lifecycleStatus = :lifecycleStatus and 
r.release.releaseType is not null 
group by r.release.protected_, r.release.releaseType, r.version`
append(“来自releaser类别,其中 r、 elease.lifecycleStatus=:lifecycleStatus“;sqlString.append(“和 r、 release.releaseType不为空“);append(“分组依据 r、 release.protected,r.release.releaseType.id,r.version.id,r.id ");

它工作得很好


感谢所有..

您必须加入的发布类型:

SELECT
  release.protected_, releaseType, r.version
FROM
  ReleaseCategory r 
JOIN
  r.release release
LEFT JOIN
  release.releaseType releaseType
WHERE
  release.lifecycleStatus = :lifecycleStatus
AND 
  releaseType IS NOT NULL
GROUP BY
  release.protected_, releaseType, r.version

您必须加入releaseType:

SELECT
  release.protected_, releaseType, r.version
FROM
  ReleaseCategory r 
JOIN
  r.release release
LEFT JOIN
  release.releaseType releaseType
WHERE
  release.lifecycleStatus = :lifecycleStatus
AND 
  releaseType IS NOT NULL
GROUP BY
  release.protected_, releaseType, r.version


编写条件查询后,hibernate查询没有releasetyp3_u3;.id。请验证是否已在此处粘贴正确的hibernate查询…谢谢各位。我编辑了这篇文章,并添加了hibernate查询输出和代码的查询形成行。使用没有聚合函数的
groupby
几乎总是一个坏主意。选择的结果应该是什么?您希望每个组中有哪一条记录?这是一个迁移项目,同一个查询在OpenJPA、DB2和Websphere中运行良好。客户端希望将其移动到Hibernate、Postgresql和JBoss。此问题是否已发布到“”?在编写条件查询后,您的hibernate查询没有releasetyp3.id。请验证是否已在此处粘贴正确的hibernate查询…谢谢各位。我编辑了这篇文章,并添加了hibernate查询输出和代码的查询形成行。使用没有聚合函数的
groupby
几乎总是一个坏主意。选择的结果应该是什么?您希望每个组中有哪一条记录?这是一个迁移项目,同一个查询在OpenJPA、DB2和Websphere中运行良好。客户端希望将其移动到Hibernate、Postgresql和JBoss。该问题是否被归类为“Thansk N00b PR0GRAMER”。我想尽一切办法来解决这个问题。前面尝试了上述查询,但得到了相同的异常。基本上,上面的一个是原始查询,后来我根据异常添加了两列r.id,r.release.id。原因:org.postgresql.util.PSQLException:ERROR:column“releasetyp3_zy.id”必须出现在GROUP by子句中或在聚合中使用function@anandjava,您是否可以只将
r.release.id
添加到
GROUP BY
子句中的Java代码中,然后重试一次?在GROUP BY中添加列后,将获得相同的异常。原因:org.postgresql.util.PSQLException:错误:列“releasetyp3_qid”必须出现在GROUP BY子句中或用于聚合函数位置:123Thansk N00b PR0GRAMER。我想尽一切办法来解决这个问题。前面尝试了上述查询,但得到了相同的异常。基本上,上面的一个是原始查询,后来我根据异常添加了两列r.id,r.release.id。原因:org.postgresql.util.PSQLException:ERROR:column“releasetyp3_zy.id”必须出现在GROUP by子句中或在聚合中使用function@anandjava,您能否仅将
r.release.id
添加到
GROUP BY
子句中的Java代码中并重试一次?在GROUP BY中添加列后,将获得相同的异常。原因:org.postgresql.util.PSQLException:错误:列“releasetyp3_3;.id”必须出现在GROUP BY子句中或用于聚合函数位置:123