openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Logemann>
Subject MethodQL completely broken isnt it?
Date Thu, 05 Mar 2009 10:41:41 GMT

since Filter Extension wont work as discussed, i wanted to use  
MethodQL as explained in Chapter 9 Section 5. I used mainly the same  
stuff explained in the docs:


OpenJPAEntityManager oem = OpenJPAPersistence.cast(emf);
OpenJPAQuery q = oem.createQuery("openjpa.MethodQL",  

// set the type of objects that the method returns

// parameters are passed the same way as in standard queries
q.setParameter("firstName", "Fred").setParameter("lastName", "Lucas");

// this executes your method to get the results
List results = q.getResultList();


First of all, when doin this, i am getting a complaint on parameters  
like that:

<openjpa-1.2.0-r422266:683325 nonfatal user error>  
org.apache.openjpa.persistence.ArgumentException: The parameter name  
or position "firstName" passed to execute() is not valid.  All map  
keys must be a declared parameter name or a number matching the  
parameter position. Native queries only allow the use of positional  

Then i tried positional parameters like setParameter(1, "foo");

With that there is no exceptiom but the params parameter of the method  
signature s empty!

public static ResultObjectProvider fooMethod(StoreContext ctx,  
ClassMetaData meta, boolean subclasses,
                                            Map params,  
FetchConfiguration fetch);

Besides all this, i am wondering how to trigger the in-Memory Method  
exaplained in the docs later on. The method here has a different  
signature but somehow i must tell the query to use in-memory right?  
Otherwise the framework will always call the method siganture i showed  

So right now i am not being able to somehow reimplement my custom  
filter extension i used with Kodo back then. MethodQL was my only hope  
to solve all this. Please comment on these bugs.... if they are bugs  
but i dont know how to do something wrong here....


View raw message