protected ValueLoadContext createLoadContext() { ValueLoadContext loadContext = ValueLoadContext.create(); if (store != null) loadContext.setStoreName(store); loadContext.setSoftDeletion(softDeletion); ValueLoadContext.Query query = ValueLoadContext.createQuery(queryString); for (Map.Entry<String, Object> entry : parameters.entrySet()) { if (noConversionParams.contains(entry.getKey())) query.setParameter(entry.getKey(), entry.getValue(), false); else query.setParameter(entry.getKey(), entry.getValue()); } loadContext.setQuery(query); loadContext.getQuery().setFirstResult(firstResult); loadContext.getQuery().setMaxResults(maxResults); loadContext.setJoinTransaction(transactional); return loadContext; }
/** * Creates an instance of ValueLoadContext */ public static ValueLoadContext create() { return new ValueLoadContext(); }
@Override public ValueLoadContext createLoadContext() { ValueLoadContext loadContext = ValueLoadContext.create(); loadContext.setStoreName(storeName); loadContext.setIdName(container.getIdName()); for (MetaProperty property : container.getEntityMetaClass().getProperties()) { loadContext.addProperty(property.getName()); } ValueLoadContext.Query query = loadContext.setQueryString(this.query); query.setCondition(condition); query.setParameters(parameters); query.setMaxResults(1); loadContext.setSoftDeletion(softDeletion); return loadContext; }
protected ValueLoadContext beforeLoadValues(Map<String, Object> params) { ValueLoadContext context = new ValueLoadContext(); ValueLoadContext.Query q = (ValueLoadContext.Query) ds.createDataQuery(context, params); if (q == null) { ds.detachListener(ds.data.values()); ds.data.clear(); return null; } if (ds.firstResult > 0) q.setFirstResult(ds.firstResult); if (ds.maxResults > 0) { q.setMaxResults(ds.maxResults); } if (storeName != null) context.setStoreName(storeName); context.setSoftDeletion(ds.isSoftDeletion()); context.setIdName(idName); for (MetaProperty property : ds.metaClass.getProperties()) { context.addProperty(property.getName()); } ds.dataLoadError = null; return context; }
@Override public List<KeyValueEntity> loadValues(ValueLoadContext context) { Preconditions.checkNotNullArgument(context, "context is null"); Preconditions.checkNotNullArgument(context.getQuery(), "query is null"); ValueLoadContext.Query contextQuery = context.getQuery(); try (Transaction tx = getLoadTransaction(context.isJoinTransaction())) { EntityManager em = persistence.getEntityManager(storeName); em.setSoftDeletion(context.isSoftDeletion()); List<String> keys = context.getProperties(); for (Object item : resultList) { KeyValueEntity entity = new KeyValueEntity(); entity.setIdName(context.getIdName()); entities.add(entity);
/** * Loads a single instance and wraps it in Optional. */ public Optional<KeyValueEntity> optional() { ValueLoadContext loadContext = createLoadContext(); loadContext.getQuery().setMaxResults(1); List<KeyValueEntity> list = dataManager.loadValues(loadContext); return list.isEmpty() ? Optional.empty() : Optional.of(list.get(0)); }
@SuppressWarnings("unchecked") @Override public int getCount() { if (loader == null) { return container.getItems().size(); } if (loader instanceof CollectionLoader) { return (int) dataManager.getCount(((CollectionLoader) loader).createLoadContext()); } else if (loader instanceof KeyValueCollectionLoader) { ValueLoadContext context = ((KeyValueCollectionLoader) loader).createLoadContext(); QueryTransformer transformer = QueryTransformerFactory.createTransformer(context.getQuery().getQueryString()); // TODO it doesn't work for query containing scalars in select transformer.replaceWithCount(); context.getQuery().setQueryString(transformer.getResult()); context.setProperties(Collections.singletonList("cnt")); List<KeyValueEntity> list = dataManager.loadValues(context); Number count = list.get(0).getValue("cnt"); return count == null ? 0 : count.intValue(); } else { log.warn("Unsupported loader type: {}", loader.getClass().getName()); return 0; } }
protected ValueLoadContext createLoadContext() { ValueLoadContext loadContext = super.createLoadContext(); loadContext.setProperties(properties); return loadContext; }
protected ValueLoadContext createLoadContext() { ValueLoadContext loadContext = super.createLoadContext(); loadContext.addProperty(PROP_NAME); return loadContext; }
@Override public List<KeyValueEntity> loadValues(ValueLoadContext context) { context.setJoinTransaction(true); return dataManager.loadValues(context); }
/** * Loads a single instance. * * @throws IllegalStateException if nothing was loaded */ public KeyValueEntity one() { ValueLoadContext loadContext = createLoadContext(); loadContext.getQuery().setMaxResults(1); List<KeyValueEntity> list = dataManager.loadValues(loadContext); if (!list.isEmpty()) return list.get(0); else throw new IllegalStateException("No results"); }
@Override public ValueLoadContext createLoadContext() { ValueLoadContext loadContext = ValueLoadContext.create(); loadContext.setStoreName(storeName); loadContext.setIdName(container.getIdName()); for (MetaProperty property : container.getEntityMetaClass().getProperties()) { loadContext.addProperty(property.getName()); } ValueLoadContext.Query query = loadContext.setQueryString(this.query); query.setCondition(condition); query.setSort(sort); query.setParameters(parameters); if (firstResult > 0) query.setFirstResult(firstResult); if (maxResults < Integer.MAX_VALUE) query.setMaxResults(maxResults); loadContext.setSoftDeletion(softDeletion); return loadContext; }
/** * Loads a single instance and wraps it in Optional. */ public Optional<T> optional() { ValueLoadContext loadContext = createLoadContext(); loadContext.getQuery().setMaxResults(1); List<KeyValueEntity> list = dataManager.loadValues(loadContext); return list.isEmpty() ? Optional.empty() : Optional.ofNullable(castValue(list.get(0).getValue(PROP_NAME))); }
/** * Loads a single instance. * * @throws IllegalStateException if nothing was loaded */ public T one() { ValueLoadContext loadContext = createLoadContext(); loadContext.getQuery().setMaxResults(1); List<KeyValueEntity> list = dataManager.loadValues(loadContext); if (!list.isEmpty()) return castValue(list.get(0).getValue(PROP_NAME)); else throw new IllegalStateException("No results"); }