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:[EMAIL PROTECTED]
P.S. A good JDO? O, Gasp!