[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2647) Problems with OR parenthesis in HQL

Nicolas De Cubber (JIRA) noreply at atlassian.com
Mon Mar 17 04:13:34 EDT 2008


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2647?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_29817 ] 

Nicolas De Cubber commented on HHH-2647:
----------------------------------------

I do not see the problem.
If i replace your query filters by letters (A,B,C...)
i will have :
[3/16/08 1:43:29:957 EDT] 00000032 SystemOut O from QueueCustomerView where (A and (B) and ( not ( not (C and D) and not (E and F) and not (G and D) and not (H and I))) order by customerStatusId desc , reassessmentDate asc 

and
3/16/08 1:43:29:973 EDT] 00000032 SystemOut O Hibernate: select ... from kycr.vw_customer_queue queuecusto0_ where (A and (B) and (C and D or E and F or G and D or H and I) order by queuecusto0_.CUST_IS_NEW desc, queuecusto0_.REASS_DT asc 

which the where condition can be write has follow :
A.B. !( !(C.D).!(E.F).!(G.D).!(H.I))
which can be rewriten has follow:
A.B. (  !!(C.D)+!!(E.F)+!!(G.D)+!!(H.I))
or has follow:
A.B.( (C.D)+(E.F)+(G.D)+(H.I))

but, because '.' has prioritary on '+', you could also write it like :
A.B.(C.D+E.F+G.D+H.I) which is what is given by hibernate, so there is no problem, in my point of view.




> Problems with OR parenthesis in HQL
> -----------------------------------
>
>                 Key: HHH-2647
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2647
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: query-hql
>    Affects Versions: 3.2.1
>         Environment: Hibernate 3.2.1, postgresql 8.2, jboss 5 embedded beta 2
>            Reporter: Dennis Fleurbaaij
>   Original Estimate: 15 minutes
>  Remaining Estimate: 15 minutes
>
> Given the following (part) of a query in HQL (where 1 to 6 are comparisons of different types (=, <=, is null), but irrelevant for the problem posted here ):
> AND ( ( 1 AND 2 ) OR ( 3 AND 4 )  OR ( 5 AND 6 ) )
> will be balanced to:
> and ( ( 1 ) and 2 or 3 and ( 4 ) or 5 and 6 )

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list