openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: [VOTE] ArgumentException : More parameters were passed to execute() than were declared
Date Thu, 05 Apr 2007 05:02:50 GMT
I tested the fix and it solved my problem.

Thanks,

-dain

On Apr 2, 2007, at 3:00 PM, Marc Prud'hommeaux wrote:

> Dain-
>
> On Apr 2, 2007, at 12:23 PM, Dain Sundstrom wrote:
>
>> Is this something we can put in 0.9.7 or has that been cut already?
>
> I've gone ahead and committed the fix for this.
>
>
>
>> -dain
>>
>> On Apr 1, 2007, at 10:07 PM, Craig L Russell wrote:
>>
>>> +1 to remove the restriction. As long as no parameters are  
>>> missing, the query should be considered sufficient.
>>>
>>> Craig
>>>
>>> On Apr 1, 2007, at 9:30 AM, Marc Prud'hommeaux wrote:
>>>
>>>>
>>>> Seem fair enough to get rid of the description. I've opened  
>>>> https://issues.apache.org/jira/browse/OPENJPA-196 describing the  
>>>> issue.
>>>>
>>>> +1 from me to remove the restriction that there be exactly as  
>>>> many positional parameters declared as were assigned.
>>>>
>>>>
>>>>
>>>> On Mar 31, 2007, at 7:32 PM, Dain Sundstrom wrote:
>>>>
>>>>> Actually, I think there is a bigger problem...  Say I have a  
>>>>> query like this:
>>>>>
>>>>>     SELECT x FROM foo AS x WHERE foo.name = ?2
>>>>>
>>>>> The org.apache.openjpa.kernel.QueryImpl.assertParameters(...)  
>>>>> code assumes that if I have 1 parameter it is numbered ?1, but  
>>>>> in EJB 2.1 this was not a requirement and there are  
>>>>> certification tests that verify you are allowed to have  
>>>>> "unused" parameters (e.g, in my example about ?1 and ?N where  
>>>>> N>2 are all not used).  I couldn't find any text in the  
>>>>> specification that says that all all positional parameters must  
>>>>> be used in the query, but I did find text that say the EJB-QL  
>>>>> 3.0 language is an extension of the EJB-QL 2.1 language:
>>>>>
>>>>> "The Java Persistence query language is an extension of the  
>>>>> Enterprise Java Beans query language, EJB QL, definedin[5]."
>>>>>
>>>>> So I think we must remove the "extra-params" check, but I would  
>>>>> be happy with a "don't check for extra-params flag".
>>>>>
>>>>> -dain
>>>>>
>>>>> On Mar 31, 2007, at 8:56 AM, Dain Sundstrom wrote:
>>>>>
>>>>>> I'm working on a CMP 2 implementation that delegates to  
>>>>>> OpenJPA for persistence.  I'm running into a problem where I  
>>>>>> get the following exception:
>>>>>>
>>>>>> org.apache.openjpa.persistence.ArgumentException : More  
>>>>>> parameters were passed to execute() than were declared: 4  
>>>>>> parameters were specified for query execution, but only 2  
>>>>>> parameters were declared in the query.
>>>>>>
>>>>>>
>>>>>> In CMP you declare finder and select methods that have  
>>>>>> parameters which are passed into the query engine.  You can  
>>>>>> have as many parameters as you like but are not required to  
>>>>>> use them all, but it appears that OpenJPA is enforcing a  
>>>>>> restriction where if the EJB-QL text only lists say 2  
>>>>>> parameters and I set 4 I get the above exception.  In order of  
>>>>>> perference:
>>>>>>
>>>>>> Is this spec required? If not, can we remove the check?
>>>>>>
>>>>>> Is there a way to disable the check?  If so, how?
>>>>>>
>>>>>> Is there a way to determine the number of paramters a query  
>>>>>> takes?  If so, I can change my code.
>>>>>>
>>>>>> Is there a way to get the ejbql text from a Query object? If  
>>>>>> so, I'll write a quick parser to determine number of queries  
>>>>>> myself.
>>>>>>
>>>>>> BTW, I'm currently using 0.9.6.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> -dain
>>>>>
>>>>
>>>
>>> Craig Russell
>>> Architect, Sun Java Enterprise System http://java.sun.com/ 
>>> products/jdo
>>> 408 276-5638 mailto:Craig.Russell@sun.com
>>> P.S. A good JDO? O, Gasp!
>>>
>>
>


Mime
View raw message