コード例 #1
0
 public Query createQuery(String ejbql) {
   if (ejbql.indexOf('#') > 0) {
     QueryParser qp = new QueryParser(ejbql);
     Query query = delegate.createQuery(qp.getEjbql());
     for (int i = 0; i < qp.getParameterValueBindings().size(); i++) {
       query.setParameter(
           QueryParser.getParameterName(i), qp.getParameterValueBindings().get(i).getValue());
     }
     return query;
   } else {
     return delegate.createQuery(ejbql);
   }
 }
コード例 #2
0
 protected Object handleCreateQueryWithString(Method method, Object[] args) throws Throwable {
   if (args[0] == null) {
     return method.invoke(delegate, args);
   }
   String ejbql = (String) args[0];
   if (ejbql.indexOf('#') > 0) {
     QueryParser qp = new QueryParser(ejbql);
     Object[] newArgs = args.clone();
     newArgs[0] = qp.getEjbql();
     Query query = (Query) method.invoke(delegate, newArgs);
     for (int i = 0; i < qp.getParameterValueBindings().size(); i++) {
       query.setParameter(
           QueryParser.getParameterName(i), qp.getParameterValueBindings().get(i).getValue());
     }
     return query;
   } else {
     return method.invoke(delegate, args);
   }
 }