List of usage examples for javax.persistence Parameter getParameterType
Class<T> getParameterType();
From source file:com.impetus.kundera.rest.common.EntityUtils.java
/** * @param queryString/*from w w w . j a v a2s .c o m*/ * @param q */ public static void setQueryParameters(String queryString, HashMap<String, String> paramsMap, Query q) { KunderaQuery kq = ((QueryImpl) q).getKunderaQuery(); Set<Parameter<?>> parameters = kq.getParameters(); for (String paramName : paramsMap.keySet()) { String value = paramsMap.get(paramName); if (StringUtils.isNumeric(paramName)) { for (Parameter param : parameters) { if (param.getPosition() == Integer.parseInt(paramName)) { Class<?> paramClass = param.getParameterType(); PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); Object paramValue = accessor.fromString(paramClass, value); q.setParameter(Integer.parseInt(paramName), paramValue); break; } } } else { for (Parameter param : parameters) { if (param.getName().equals(paramName)) { Class<?> paramClass = param.getParameterType(); PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); Object paramValue = accessor.fromString(paramClass, value); if (paramName.equalsIgnoreCase("firstResult")) { q.setFirstResult(Integer.parseInt((String) paramValue)); } else if (paramName.equalsIgnoreCase("maxResult")) { q.setMaxResults(Integer.parseInt((String) paramValue)); } else { q.setParameter(paramName, paramValue); } break; } } } } }
From source file:com.impetus.kundera.rest.common.EntityUtils.java
/** * @param queryString/*from w w w . ja v a 2 s. c om*/ * @param q */ public static void setQueryParameters(String queryString, String parameterString, Query q) { Map<String, String> paramsMap = new HashMap<String, String>(); StringTokenizer st = new StringTokenizer(parameterString, "&"); while (st.hasMoreTokens()) { String element = st.nextToken(); paramsMap.put(element.substring(0, element.indexOf("=")), element.substring(element.indexOf("=") + 1, element.length())); } KunderaQuery kq = ((QueryImpl) q).getKunderaQuery(); Set<Parameter<?>> parameters = kq.getParameters(); for (String paramName : paramsMap.keySet()) { String value = paramsMap.get(paramName); if (paramName.equalsIgnoreCase("firstResult")) { q.setFirstResult(Integer.parseInt(value)); } else if (paramName.equalsIgnoreCase("maxResult")) { q.setMaxResults(Integer.parseInt(value)); } else if (StringUtils.isNumeric(paramName)) { for (Parameter param : parameters) { if (param.getPosition() == Integer.parseInt(paramName)) { Class<?> paramClass = param.getParameterType(); PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); Object paramValue = accessor.fromString(paramClass, value); q.setParameter(Integer.parseInt(paramName), paramValue); break; } } } else { for (Parameter param : parameters) { if (param.getName().equals(paramName)) { Class<?> paramClass = param.getParameterType(); PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); Object paramValue = accessor.fromString(paramClass, value); q.setParameter(paramName, paramValue); break; } } } } }
From source file:com.impetus.kundera.rest.common.EntityUtils.java
/** * @param queryString//ww w . jav a 2 s . co m * @param q * @param em */ public static void setObjectQueryParameters(String queryString, String parameterString, Query q, EntityManager em, String mediaType) { MetamodelImpl metamodel = (MetamodelImpl) em.getEntityManagerFactory().getMetamodel(); if (parameterString == null || parameterString.isEmpty()) { return; } Map<String, String> paramsMap = new HashMap<String, String>(); ObjectMapper mapper = new ObjectMapper(); try { paramsMap = mapper.readValue(parameterString, new TypeReference<HashMap<String, String>>() { }); KunderaQuery kq = ((QueryImpl) q).getKunderaQuery(); Set<Parameter<?>> parameters = kq.getParameters(); for (String paramName : paramsMap.keySet()) { String value = paramsMap.get(paramName); if (paramName.equalsIgnoreCase("firstResult")) { q.setFirstResult(Integer.parseInt(value)); } else if (paramName.equalsIgnoreCase("maxResult")) { q.setMaxResults(Integer.parseInt(value)); } else if (StringUtils.isNumeric(paramName)) { for (Parameter param : parameters) { if (param.getPosition() == Integer.parseInt(paramName)) { Class<?> paramClass = param.getParameterType(); Object paramValue = null; if (metamodel.isEmbeddable(paramClass)) { paramValue = JAXBUtils.toObject(StreamUtils.toInputStream(value), paramClass, mediaType); } else { PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); paramValue = accessor.fromString(paramClass, value); } q.setParameter(Integer.parseInt(paramName), paramValue); break; } } } else { for (Parameter param : parameters) { if (param.getName().equals(paramName)) { Class<?> paramClass = param.getParameterType(); Object paramValue = null; if (metamodel.isEmbeddable(paramClass)) { paramValue = JAXBUtils.toObject(StreamUtils.toInputStream(value), paramClass, mediaType); } else { PropertyAccessor accessor = PropertyAccessorFactory.getPropertyAccessor(paramClass); paramValue = accessor.fromString(paramClass, value); } q.setParameter(paramName, paramValue); break; } } } } } catch (JsonParseException e) { log.error(e.getMessage()); } catch (JsonMappingException e) { log.error(e.getMessage()); } catch (IOException e) { log.error(e.getMessage()); } }
From source file:org.eclipse.emf.teneo.hibernate.HbEntityDataStore.java
@SuppressWarnings({ "rawtypes", "unchecked" })
protected QueryImpl<?> repairParameterJavaType(QueryImpl<?> query) {
try {/*from w w w .j av a 2 s .co m*/
final Set<Parameter<?>> repairedParameters = new HashSet<Parameter<?>>();
final Object parametersObject = getQueryParametersField().get(query);
final AbstractQueryImpl queryImpl = AbstractQueryImpl.class.cast(query.getHibernateQuery());
for (Parameter<?> parameter : (Collection<Parameter>) parametersObject) {
if (Map.class == parameter.getParameterType()) {
final Type type;
if (parameter.getName() != null) {
// repair these ones
final NamedParameterDescriptor descriptor = queryImpl.getParameterMetadata()
.getNamedParameterDescriptor(parameter.getName());
type = descriptor.getExpectedType();
} else {
type = queryImpl.getParameterMetadata()
.getOrdinalParameterExpectedType(parameter.getPosition());
}
if (type instanceof EntityType) {
final Parameter<?> param = new ParameterImpl(parameter.getName(), parameter.getPosition(),
Object.class);
repairedParameters.add(param);
// final EntityType entityType = (EntityType) type;
// final String entityName = entityType
// .getAssociatedEntityName();
// final EClass eClass = HbEntityDataStore.this
// .getEntityNameStrategy().toEClass(entityName);
} else {
repairedParameters.add(parameter);
}
} else {
repairedParameters.add(parameter);
}
}
getQueryParametersField().set(query, repairedParameters);
return query;
} catch (Exception e) {
throw new IllegalStateException(e);
}
}