mirror of
https://github.com/apache/openjpa.git
synced 2025-03-07 00:49:39 +00:00
OPENJPA-1810: fix performance regression for non-criteria query cache.
git-svn-id: https://svn.apache.org/repos/asf/openjpa/trunk@1043572 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ccc81f0ab8
commit
09dab24fcd
@ -262,6 +262,10 @@ public class QueryCacheStoreQuery
|
||||
return _query.newCompilation();
|
||||
}
|
||||
|
||||
public Object getCompilation() {
|
||||
return _query.getCompilation();
|
||||
}
|
||||
|
||||
public void populateFromCompilation(Object comp) {
|
||||
_query.populateFromCompilation(comp);
|
||||
}
|
||||
@ -331,7 +335,7 @@ public class QueryCacheStoreQuery
|
||||
public ResultObjectProvider executeQuery(StoreQuery q, Object[] params,
|
||||
Range range) {
|
||||
QueryCacheStoreQuery cq = (QueryCacheStoreQuery) q;
|
||||
Object parsed = cq.getDelegate().newCompilation();
|
||||
Object parsed = cq.getDelegate().getCompilation();
|
||||
QueryKey key = QueryKey.newInstance(cq.getContext(),
|
||||
_ex.isPacking(q), params, _candidate, _subs, range.start,
|
||||
range.end, parsed);
|
||||
|
@ -72,6 +72,10 @@ public abstract class AbstractStoreQuery
|
||||
return null;
|
||||
}
|
||||
|
||||
public Object getCompilation() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void populateFromCompilation(Object comp) {
|
||||
}
|
||||
|
||||
|
@ -154,6 +154,10 @@ public class ExpressionStoreQuery
|
||||
return _parser.parse(ctx.getQueryString(), this);
|
||||
}
|
||||
|
||||
public Object getCompilation() {
|
||||
return _parsed;
|
||||
}
|
||||
|
||||
public void populateFromCompilation(Object comp) {
|
||||
_parser.populate(comp, this);
|
||||
}
|
||||
|
@ -90,6 +90,11 @@ public interface StoreQuery
|
||||
* Create a new compilation for this query. May be null.
|
||||
*/
|
||||
public Object newCompilation();
|
||||
|
||||
/**
|
||||
* Get the current compilation for this query. If it is null, do not create.
|
||||
*/
|
||||
public Object getCompilation();
|
||||
|
||||
/**
|
||||
* Populate internal data from compilation.
|
||||
|
Loading…
x
Reference in New Issue
Block a user