[ https://issues.apache.org/jira/browse/OPENJPA-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12603354#action_12603354 ]
Milosz Tylenda commented on OPENJPA-478: ---------------------------------------- The JPA spec says: "If there is no GROUP BY clause and the HAVING clause is used, the result is treated as a single group, and the select list can only consist of aggregate functions. The use of HAVING in the absence of GROUP BY is not required to be supported by an implementation of this speciļ¬cation. Portable appli- cations should not rely on HAVING without the use of GROUP BY." If OpenJPA does not allow HAVING without GROUP BY, the paragraph in question could be changed to something like: "OpenJPA requires that if a query declares a HAVING clause, it must also declare a GROUP BY clause." > contradictory text in manual section 10.2.6. JPQL GROUP BY, HAVING > ------------------------------------------------------------------ > > Key: OPENJPA-478 > URL: https://issues.apache.org/jira/browse/OPENJPA-478 > Project: OpenJPA > Issue Type: Bug > Components: docs > Environment: linux, firefox, etc.. > Reporter: Andy Schlaikjer > > In section 10.2.6. JPQL GROUP BY, HAVING > (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_group) > the last paragraph seems contradictory: > """ > If there is no GROUP BY clause and the HAVING clause is used, the result is > treated as a single group, and the select list can only consist of aggregate > functions. When a query declares a HAVING clause, it must always also declare > a GROUP BY clause. > """ > The first sentences seems to imply that a query may incorporate a HAVING > clause without a GROUP BY clause, but the second sentence indicates otherwise. > Looking at section 10.2.12 JPQL BNF > (http://openjpa.apache.org/docs/latest/manual/jpa_langref.html#jpa_langref_bnf), > it seems as though the BNF contradicts the last sentence: > """ > select_statement ::= select_clause from_clause [where_clause] > [groupby_clause] [having_clause] [orderby_clause] > """ > otherwise the BNF would be something like this: > select_statement ::= select_clause from_clause [where_clause] [groupby_clause > [having_clause]] [orderby_clause] -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.