private void initParams(List params) throws ClassNotFoundException { NamedParameter param; for (Iterator iterator = params.iterator(); iterator.hasNext(); ) { String s = (String) iterator.next(); for (StringTokenizer tokenizer = new StringTokenizer(s, ";"); tokenizer.hasMoreTokens(); ) { String name = tokenizer.nextToken(); String type = tokenizer.nextToken(); if (name.equalsIgnoreCase("return")) { returnType = NamedParameter.createQName(type); } else if (name.equalsIgnoreCase("returnClass")) { returnClass = ClassHelper.loadClass(type, getClass()); } else { String mode = tokenizer.nextToken(); QName paramName = (QName) converter.convert(QName.class, name); QName qtype = null; if (type.startsWith("qname{")) { qtype = (QName) converter.convert(QName.class, name); } else { qtype = NamedParameter.createQName(type); } param = new NamedParameter(paramName, qtype, mode); addNamedParameter(param); } } } }
/** * returns list of entities meeting the specified criteria. * * @param criterion varargs criterion. (use something like Restrictions.eq(propertyName, value);) * null criterion returns all. * @param sortOrder the Order Object. Null value indicates no sort order. * @return the non null list. * @throws HibernateException if there is an error in persistence */ @Nonnull public List<T_ENTITY> listWithJQL(String qlString, NamedParameter... params) { List<T_ENTITY> result = null; try { EntityManager em = getEntityManager(); begin(); TypedQuery<T_ENTITY> query = em.createQuery(qlString, entityClass); for (NamedParameter param : params) { query.setParameter(param.getName(), param.getValue()); } result = query.getResultList(); commit(); } finally { cleanup(); } return result; }
/** * @param qlString * @param params * @return */ @Nullable public T_ENTITY findOneWithJQL(String qlString, NamedParameter... params) { T_ENTITY result = null; try { EntityManager em = getEntityManager(); begin(); TypedQuery<T_ENTITY> query = em.createQuery(qlString, entityClass); for (NamedParameter param : params) { query.setParameter(param.getName(), param.getValue()); } result = query.getSingleResult(); commit(); } catch (Exception e) { LOG.info("no entity matching query"); } finally { cleanup(); } return result; }
protected String buildWhereClause(Operation op, String prefix, NamedParameter param) { if (op == Operation.NULL || op == Operation.NOT_NULL) { return buildFieldId(prefix, param.getField()) + " " + op.getRepresentation(); } return buildFieldId(prefix, param.getField()) + buildParameterName(op, param.getName()); }