[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1334) Implements query.setParameterList(int position, Collection vals)

John Newman (JIRA) noreply at atlassian.com
Thu Oct 4 17:01:25 EDT 2007


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

John Newman commented on HHH-1334:
----------------------------------

Hi,

I also have this requirement, 

for (int i = 0; i < queryArgs.lengh; ++i)  {
    if (Collection.class.isAssignableFrom(queryArgs[i].getClass())  {
        query.setParameterList(i, (Collection) queryArgs[i]); // would work but this method doesn't exist for reason above
    } else  {
        query.setParameter(i, queryArgs[i]);
    }
}

now since we won't be seeing that method, I could do:
String[] paramNames = query.getParameterNames();
for (int i = 0; i < queryArgs.lengh; ++i)  {
    if (Collection.class.isAssignableFrom(queryArgs[i].getClass())  {
        query.setParameterList(parameterNames[i], (Collection) queryArgs[i]); // would work but the param names are not in the correct order.
    } else  {
        query.setParameter(i, queryArgs[i]);
    }
}

so I figure typically when you have something in a map that is out of order, you can just use a LinkedHashMap to keep the order straight.  Looking around here, (god hibernate is complicated) I found what I think to be the source, line 290 of HQLQueryPlan:
		Map namedParamDescriptorMap = new HashMap();

Just taking a stab at it I wonder if switching that to LinkedHashMap would do the trick?  If those params can come out in the order they appear in the query, setParameterList(i, o) should be possible.

But I don't think that would cover the case of mixed named & ordinal params : query="FROM X where y = ? and z = ? and list = :list and q = ? ...

thoughts?

> Implements query.setParameterList(int position, Collection vals)
> ----------------------------------------------------------------
>
>                 Key: HHH-1334
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1334
>             Project: Hibernate3
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 3.1
>            Reporter: Emmanuel Bernard
>
> This is expected by EJB3

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