Is this something we can put in 0.9.7 or has that been cut already? -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! >