[hibernate-issues] [Hibernate-JIRA] Closed: (HHH-960) Incorectly bound parameters in HQL

Max Rydahl Andersen (JIRA) noreply at atlassian.com
Wed Oct 25 05:56:12 EDT 2006


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-960?page=all ]
     
Max Rydahl Andersen closed HHH-960:
-----------------------------------

    Resolution: Duplicate

> Incorectly bound parameters in HQL
> ----------------------------------
>
>          Key: HHH-960
>          URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-960
>      Project: Hibernate3
>         Type: Bug

>   Components: core
>     Versions: 3.1 beta 2
>  Environment: hibernate 3.1 beta 2 and beta3 (presumable other as well)
>     Reporter: Misko Hevery
>  Attachments: Component.hbm.xml, ComponentProperty.hbm.xml, ComponentValue.hbm.xml, HibernateBug960.zip, junit_testcase_HHH960.patch
>
>
> I have a HQL:
> ==========
> select
>    stack.serialNo as stackSN,
>    v_p_stack_seal_strips.text as stack_Seal_Strip,
>    v_p_size.number as size
> from
>    com.sigmaquest.gen.model.Component as stack
>    left join stack.containedComponents as cell with cell.componentKind=:kind_cell
>    left join stack.values as v_p_stack_seal_strips with v_p_stack_seal_strips.componentProperty=:p_stack_seal_strips
>    left join cell.values as v_p_size with v_p_size.componentProperty=:p_size
> where
>    stack = :stack
> ==========
> This gets translated to SQL (on oracle) 
> ==========
> select 
> 	component0_.serialNo as col_0_0_,
> 	values2_.val_text as col_1_0_,
> 	values3_.val_number as col_2_0_
> from
> 	GEN_COMPONENT component0_ 
> 	left outer join GEN_COMPONENT containedc1_ on component0_.ID=containedc1_.containerComponent_id 
> 		and (containedc1_.componentKind_id=?)
> 	left outer join GEN_COMPONENT_VALUE values3_ on containedc1_.ID=values3_.component_id 
> 		and (values3_.property_id=?)
> 	left outer join GEN_COMPONENT_VALUE values2_ on component0_.ID=values2_.component_id 
> 		and (values2_.property_id=?)
> where 
> 	component0_.ID=?
> ==========
> The transaltion is correct (with some caviats)
> named bindigs are:
> 1 :kind_cell
> 2 :p_stack_seal_strips
> 2 :size
> 4 :stack
> When these get bound to SQL in the above order the SQL is actualy reversed.
> SQL binding order!
> SQL ?1?: containedc1_ is :kind_cell CORRECT
> SQL ?2?: values3_ is :p_size gets bound to :p_stack_seal_strips WRONG
> SQL ?3?: values3_ is :p_stack_seal_strips gets bound to :p_size WRONG
> SQL ?4?: component0_.ID=? is :stack CORRECT
> Needless to say executing the query produces garabage.
> As far as I can tell the problem is in the way AST transaltes HQL to SQL. It does not always keep the order of the operands as in the above example. I don't understand hibernate codebase sufficiently enough to point you closer to the problem. This bug is a blocker and I am happy to provided any examples/code necesary to reproduce
> -- Misko at hevery.com

-- 
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