LoadContext.Query query = new LoadContext.Query(queryStr); loadCtx.setQuery(query); if (firstResult != null) query.setFirstResult(firstResult); if (maxResults != null) query.setMaxResults(maxResults); query.setParameter(paramKey, parsedParam);
protected void setSortDirection(LoadContext.Query q) { boolean asc = Sortable.Order.ASC.equals(sortInfos[0].getOrder()); MetaPropertyPath propertyPath = sortInfos[0].getPropertyPath(); String[] sortProperties = null; if (metadata.getTools().isPersistent(propertyPath)) { sortProperties = getSortPropertiesForPersistentAttribute(propertyPath); } else { // a non-persistent attribute List<String> relProperties = metadata.getTools().getRelatedProperties(propertyPath.getMetaProperty()); if (!relProperties.isEmpty()) { List<String> sortPropertiesList = new ArrayList<>(relProperties.size()); for (String relProp : relProperties) { String[] ppCopy = Arrays.copyOf(propertyPath.getPath(), propertyPath.getPath().length); ppCopy[ppCopy.length - 1] = relProp; MetaPropertyPath relPropertyPath = propertyPath.getMetaProperties()[0].getDomain().getPropertyPath(Joiner.on(".").join(ppCopy)); String[] sortPropertiesForRelProperty = getSortPropertiesForPersistentAttribute(relPropertyPath); if (sortPropertiesForRelProperty != null) Collections.addAll(sortPropertiesList, sortPropertiesForRelProperty); } if (!sortPropertiesList.isEmpty()) sortProperties = sortPropertiesList.toArray(new String[sortPropertiesList.size()]); } } if (sortProperties != null && sortProperties.length != 0) { QueryTransformer transformer = QueryTransformerFactory.createTransformer(q.getQueryString()); transformer.replaceOrderBy(!asc, sortProperties); String jpqlQuery = transformer.getResult(); q.setQueryString(jpqlQuery); } }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; QueryHolder that = (QueryHolder) o; if (query == null || that.query == null) return false; if (!Objects.equals(query.getQueryString(), that.query.getQueryString())) return false; if (!Objects.equals(query.getParameters(), that.query.getParameters())) return false; return true; }
((LoadContext.Query) q).setCacheable(isCacheable());
String queryString = String.format( "select e from %s e where e.%s in :idList", cdsrMetaClass, crossDataStoreProperty.primaryKeyName); loadContext.setQuery(LoadContext.createQuery(queryString).setParameter("idList", idList)); } else { .map(o -> ((Entity) o).getValue(property.getName())) .collect(Collectors.toList()); query.setParameter("list_" + property.getName(), propList);
log.debug("getCount: metaClass=" + context.getMetaClass() + (context.getPrevQueries().isEmpty() ? "" : ", from selected") + ", query=" + (context.getQuery() == null ? null : RdbmsQueryBuilder.printQuery(context.getQuery().getQueryString()))); context.setQuery(LoadContext.createQuery(null)); if (StringUtils.isBlank(context.getQuery().getQueryString())) { context.getQuery().setQueryString("select e from " + metaClass.getName() + " e"); if (serverConfig.getInMemoryDistinct() && context.getQuery() != null) { QueryTransformer transformer = QueryTransformerFactory.createTransformer( context.getQuery().getQueryString()); ensureDistinct = transformer.removeDistinct(); if (ensureDistinct) { context.getQuery().setQueryString(transformer.getResult()); context.getQuery().setFirstResult(0); context.getQuery().setMaxResults(0); QueryTransformer transformer = QueryTransformerFactory.createTransformer(context.getQuery().getQueryString()); transformer.replaceWithCount(); context.getQuery().setQueryString(transformer.getResult());
&& context.getQuery().getMaxResults() == 1 && context.getQuery().getQueryString() != null) && context.getId() != null;
log.debug("loadList: metaClass=" + context.getMetaClass() + ", view=" + context.getView() + (context.getPrevQueries().isEmpty() ? "" : ", from selected") + ", query=" + (context.getQuery() == null ? null : RdbmsQueryBuilder.printQuery(context.getQuery().getQueryString())) + (context.getQuery() == null || context.getQuery().getFirstResult() == 0 ? "" : ", first=" + context.getQuery().getFirstResult()) + (context.getQuery() == null || context.getQuery().getMaxResults() == 0 ? "" : ", max=" + context.getQuery().getMaxResults())); if (serverConfig.getInMemoryDistinct() && context.getQuery() != null) { QueryTransformer transformer = queryTransformerFactory.transformer( context.getQuery().getQueryString()); ensureDistinct = transformer.removeDistinct(); if (ensureDistinct) { context.getQuery().setQueryString(transformer.getResult());
LoadContext.Query query = new LoadContext.Query(queryString); if (limit != null) { query.setMaxResults(limit); } else { query.setMaxResults(persistenceManagerClient.getMaxFetchUI(metaClass.getName())); query.setFirstResult(offset); query.setParameters(queryParameters);
LoadContext.Query query = new LoadContext.Query(queryRequest.getQuery()); query.setParameter(key, queryRequest.getParams().get(key)); query.setFirstResult(queryRequest.getFirst()); if (queryRequest.getMax() != null) query.setMaxResults(queryRequest.getMax());
String pkName = referenceToEntitySupport.getPrimaryKeyForLoadingEntity(entityMetaClass); lc.setQueryString(format("select e from %s e where e.%s = :entityId", entityMetaClass.getName(), pkName)) .setParameter("entityId", categoryAttribute.getDefaultValue()); Entity defaultEntity = dataManager.load(lc); item.setValue(code, defaultEntity);
LoadContext.Query q = context.setQueryString("select a from sys$CategoryAttribute a where a.id = :id"); context.setView("_local"); q.setParameter("id", categoryAttrId); CategoryAttribute categoryAttribute = dataService.load(context); if (categoryAttribute == null) {
LoadContext.Query query = new LoadContext.Query(queryInfo.getJpql()); query.setMaxResults(limit); } else { query.setMaxResults(persistenceManagerClient.getMaxFetchUI(entityName)); query.setFirstResult(offset); query.setParameter(paramName, objectParamValue); query.setParameter("session$userId", userSessionSource.currentOrSubstitutedUserId()); query.setParameter("session$userLogin", userSessionSource.getUserSession().getCurrentOrSubstitutedUser().getLoginLowerCase()); query.setCacheable(queryInfo.isCacheable()); ctx.setQuery(query); ctx.setView(queryInfo.getViewName());
String entityName = loadContext.getMetaClass(); QueryParser parser = QueryTransformerFactory.createParser(contextQuery.getQueryString()); if (!parser.isEntitySelect(entityName)) return; em.setSoftDeletion(loadContext.isSoftDeletion()); QueryTransformer transformer = QueryTransformerFactory.createTransformer(contextQuery.getQueryString()); transformer.replaceWithSelectId(metadata.getTools().getPrimaryKeyName(metadata.getClassNN(entityName))); transformer.removeOrderBy(); queryBuilder.init(queryString, contextQuery.getCondition(), contextQuery.getSort(), contextQuery.getParameters(), contextQuery.getNoConversionParams(), null, entityName); if (prevQueries.size() > 1) {
loadContext.setView(view); loadContext.setQuery(LoadContext.createQuery(stringQuery).setParameter("searchString", searchString));
metaClass.getName(), referenceToEntitySupport.getPrimaryKeyForLoadingEntity(metaClass))) .setParameter("entityId", entityId)); Entity entity = dataManager.load(ctx); if (entity == null) {
protected void checkGlobalDefaultAndCloseEditor() { List<FilterEntity> otherDefaultFilters = dataManager.loadList(LoadContext.create(FilterEntity.class) .setQuery(LoadContext.createQuery("select f from sec$Filter f where f.globalDefault = true and " + "f.componentId = :componentId and " + "f.id <> :currentId ") .setParameter("componentId", filterEntity.getComponentId()) .setParameter("currentId", filterEntity.getId()))); if (!otherDefaultFilters.isEmpty()) { String otherFilterNamesStr = otherDefaultFilters.stream() .map(FilterEntity::getName) .collect(Collectors.joining(", ")); showOptionDialog(getMessage("filter.editor.anotherGlobalDefaultFilterFound.dialogTitle"), formatMessage("filter.editor.anotherGlobalDefaultFilterFound.dialogMessage", otherFilterNamesStr), MessageType.WARNING, new Action[]{ new DialogAction(DialogAction.Type.YES, Action.Status.PRIMARY).withHandler(e -> { otherDefaultFilters.forEach(otherDefaultFilter -> otherDefaultFilter.setGlobalDefault(false)); modifiedGlobalDefaultFilters = dataManager.commit(new CommitContext(otherDefaultFilters)); close(COMMIT_ACTION_ID, true); }), new DialogAction(DialogAction.Type.NO, Action.Status.NORMAL).withHandler(e -> { filterEntity.setGlobalDefault(false); close(COMMIT_ACTION_ID, true); }), }); } else { close(COMMIT_ACTION_ID, true); } }
/** * This method is invoked by {@link #loadData(Map)} method immediately before loading entities from {@code DataSupplier}. * <br>If you override this method, be sure to call {@code super()}. * * @param params datasource parameters, as described in {@link CollectionDatasource#refresh(java.util.Map)} * @return LoadContext which will be used to load data */ protected LoadContext beforeLoadData(Map<String, Object> params) { final LoadContext context = new LoadContext(metaClass); LoadContext.Query q = (LoadContext.Query) createDataQuery(context, params); if (q == null) { detachListener(data.values()); data.clear(); return null; } if (sortInfos != null && sortOnDb) { setSortDirection(q); } if (firstResult > 0) q.setFirstResult(firstResult); if (maxResults > 0) { q.setMaxResults(maxResults); } context.setView(view); context.setSoftDeletion(isSoftDeletion()); prepareLoadContext(context); dataLoadError = null; return context; }
@Override public void actionPerform(Component component) { if (!isEnabled()) { return; } ReportGroup group = (ReportGroup) target.getSingleSelected(); if (group != null) { if (group.getSystemFlag()) { showNotification(getMessage("unableToDeleteSystemReportGroup"), NotificationType.WARNING); } else { LoadContext<Report> loadContext = new LoadContext<>(Report.class); loadContext.setView("report.view"); LoadContext.Query query = new LoadContext.Query("select r from report$Report r where r.group.id = :groupId"); query.setMaxResults(1); query.setParameter("groupId", group.getId()); loadContext.setQuery(query); DataSupplier dataService = getDsContext().getDataSupplier(); Report report = dataService.load(loadContext); if (report != null) { showNotification(getMessage("unableToDeleteNotEmptyReportGroup"), NotificationType.WARNING); } else { super.actionPerform(component); } } } } }
protected void assignRoleUsers(Role role, Collection<User> items) { if (items == null) return; List<Entity> toCommit = new ArrayList<>(); for (User user : items) { LoadContext<UserRole> ctx = LoadContext.create(UserRole.class) .setView("user.edit") .setQuery(new LoadContext.Query("select ur from sec$UserRole ur where ur.user.id = :userId") .setParameter("userId", user.getId()) ); List<UserRole> userRoles = dataManager.loadList(ctx); boolean roleExist = false; for (UserRole userRole : userRoles) { if (role.equals(userRole.getRole())) { roleExist = true; break; } } if (!roleExist) { UserRole ur = metadata.create(UserRole.class); ur.setUser(user); ur.setRole(role); toCommit.add(ur); } } if (!toCommit.isEmpty()) { dataManager.commit(new CommitContext(toCommit)); } showNotification(getMessage("rolesAssigned.msg")); }