com.haulmont.cuba.core.Query类的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(11.6k)|赞(0)|评价(0)|浏览(303)

本文整理了Java中com.haulmont.cuba.core.Query类的一些代码示例,展示了Query类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query类的具体详情如下:
包路径:com.haulmont.cuba.core.Query
类名称:Query

Query介绍

[英]Interface used to control query execution.
Consider use of TypedQuery instead of this interface.
[中]用于控制查询执行的接口。
考虑使用TyPyQuess代替此接口。

代码示例

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @Nullable
  2. protected User loadUser(String login) throws LoginException {
  3. if (login == null) {
  4. throw new IllegalArgumentException("Login is null");
  5. }
  6. EntityManager em = persistence.getEntityManager();
  7. String queryStr = "select u from sec$User u where u.loginLowerCase = ?1 and (u.active = true or u.active is null)";
  8. Query q = em.createQuery(queryStr);
  9. q.setParameter(1, login.toLowerCase());
  10. List list = q.getResultList();
  11. if (list.isEmpty()) {
  12. log.debug("Unable to find user: {}", login);
  13. return null;
  14. } else {
  15. //noinspection UnnecessaryLocalVariable
  16. User user = (User) list.get(0);
  17. return user;
  18. }
  19. }

代码示例来源:origin: com.haulmont.fts/fts-core

  1. EntityManager mainEm = persistence.getEntityManager();
  2. List ids = mainEm.createQuery(getExcludeIdsQueryString())
  3. .setParameter("entityName", metaClass.getName())
  4. .getResultList();
  5. if (ids.isEmpty()) {
  6. return storeEm.createQuery(getQueryString())
  7. .setParameter("ids", ids)
  8. .getResultList();
  9. List loadingIds = ids.subList(i, Math.min(i + LOADING_SIZE, ids.size()));
  10. List loadingResult = storeEm.createQuery(getQueryString())
  11. .setParameter("ids", loadingIds)
  12. .setMaxResults(ftsConfig.getReindexBatchSize())
  13. .getResultList();
  14. result.addAll(loadingResult);
  15. if (result.size() == ftsConfig.getReindexBatchSize()) {
  16. } else {
  17. return storeEm.createQuery(getQueryString())
  18. .getResultList();
  19. Query query = em.createQuery(getQueryString());
  20. if (excludeFromQueue) {
  21. query.setParameter("entityName", metaClass.getName());
  22. query.setMaxResults(ftsConfig.getReindexBatchSize());
  23. return query.getResultList();

代码示例来源:origin: de.diedavids.cuba.entitysoftreference/entity-soft-reference-core

  1. private Query createPolymorphicQuery(EntityManager em, Class<? extends Entity> polymorphicEntityClass,
  2. String attribute,
  3. Entity softReference,
  4. String view) {
  5. String tableName = getTableNameFromEntityClass(polymorphicEntityClass);
  6. Query query = em.createQuery("select e from " + tableName + " e where e." + attribute + " = :softReference");
  7. query.setParameter("softReference", softReference, false);
  8. if (view != null) {
  9. query.setView(polymorphicEntityClass, view);
  10. }
  11. return query;
  12. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @Override
  2. public void run(EntityManager em) {
  3. Query query = em.createQuery("delete from sys$ScheduledExecution e where e.id in ?1");
  4. query.setParameter(1, subList);
  5. query.executeUpdate();
  6. }
  7. });

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. protected synchronized List<ScheduledTask> getTasks() {
  2. log.trace("Read all active tasks from DB and lock them");
  3. EntityManager em = persistence.getEntityManager();
  4. Query query = em.createQuery("select t from sys$ScheduledTask t where t.active = true");
  5. query.setLockMode(LockModeType.PESSIMISTIC_WRITE);
  6. return query.getResultList();
  7. }
  8. }

代码示例来源:origin: com.haulmont.reports/reports-core

  1. log.debug("Constraints applied: " + printQuery(query.getQueryString()));
  2. query.setView(queryView);
  3. if (queryParams != null) {
  4. for (Map.Entry<String, Object> queryParamEntry : queryParams.entrySet()) {
  5. query.setParameter(queryParamEntry.getKey(), queryParamEntry.getValue());
  6. query.setFirstResult(parameterPrototype.getFirstResult() == null ? 0 : parameterPrototype.getFirstResult());
  7. query.setMaxResults(parameterPrototype.getMaxResults());
  8. } else {
  9. Configuration configuration = AppBeans.get(Configuration.NAME);
  10. ReportingConfig config = configuration.getConfig(ReportingConfig.class);
  11. query.setMaxResults(config.getParameterPrototypeQueryLimit());
  12. queryResult = query.getResultList();
  13. tx.commit();
  14. } catch (Exception e) {

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. String pkName = referenceToEntitySupport.getPrimaryKeyForLoadingEntity(metaClass);
  2. List<BaseGenericIdEntity> entitiesValues = em.createQuery(format("select e from %s e where e.%s in :ids", metaClass.getName(), pkName))
  3. .setParameter("ids", ids)
  4. .setView(metaClass.getJavaClass(), View.MINIMAL)
  5. .getResultList();

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. break;
  2. query.setFirstResult(firstResult);
  3. query.setMaxResults(maxResults);
  4. List<E> list = query.getResultList();
  5. if (list.size() == 0) {
  6. break;

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. Query q = persistence.getEntityManager().createQuery("select h.user.id, count(h.id) " +
  2. "from sec$ScreenHistory h group by h.user.id having count(h.id) > ?1");
  3. q.setParameter(1, MAX_RECORDS);
  4. List<Object[]> userList = q.getResultList();
  5. tx.commitRetaining();
  6. deleteQuery.setParameter(1, toDelete);
  7. deleteQuery.executeUpdate();
  8. tx.commitRetaining();

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. protected boolean referenceExists(String entityName, MetaProperty property) {
  2. String template = property.getRange().getCardinality().isMany() ?
  3. "select count(e) from %s e join e.%s c where c." + primaryKeyName + "= ?1" :
  4. "select count(e) from %s e where e.%s." + primaryKeyName + " = ?1";
  5. String qstr = String.format(template, entityName, property.getName());
  6. Query query = entityManager.createQuery(qstr);
  7. query.setParameter(1, entity.getId());
  8. query.setMaxResults(1);
  9. Long count = (Long) query.getSingleResult();
  10. return count > 0;
  11. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @Override
  2. @Transactional(timeout = 2)
  3. public String executeSelectSql(String sql) {
  4. checkTestMode();
  5. log.info("started: " + sql);
  6. EntityManager em = persistence.getEntityManager();
  7. Query query = em.createNativeQuery(sql);
  8. query.getResultList();
  9. log.info("finished: " + sql);
  10. return "Done";
  11. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @Override
  2. public long getLastFinished(ScheduledTask task) {
  3. EntityManager em = persistence.getEntityManager();
  4. Query query = em.createQuery(
  5. "select max(e.finishTime) from sys$ScheduledExecution e where e.task.id = ?1")
  6. .setParameter(1, task.getId());
  7. Date date = (Date) query.getFirstResult();
  8. return date == null ? 0 : date.getTime();
  9. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. protected <T extends Entity> T findWithViews(MetaClass metaClass, Object id, List<View> views) {
  2. Object realId = getRealId(id);
  3. log.debug("find {} by id={}, views={}", metaClass.getJavaClass().getSimpleName(), realId, views);
  4. String pkName = metadata.getTools().getPrimaryKeyName(metaClass);
  5. if (pkName == null)
  6. throw new IllegalStateException("Cannot determine PK name for entity " + metaClass);
  7. Query query = createQuery(String.format("select e from %s e where e.%s = ?1", metaClass.getName(), pkName));
  8. ((QueryImpl) query).setSingleResultExpected(true);
  9. query.setParameter(1, realId);
  10. for (View view : views) {
  11. query.addView(view);
  12. }
  13. //noinspection unchecked
  14. return (T) query.getFirstResult();
  15. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @SuppressWarnings("unchecked")
  2. protected <E extends Entity> List<E> executeQuery(Query query, boolean singleResult) {
  3. List<E> list;
  4. try {
  5. if (singleResult) {
  6. try {
  7. E result = (E) query.getSingleResult();
  8. list = new ArrayList<>(1);
  9. list.add(result);
  10. } catch (NoResultException e) {
  11. list = Collections.emptyList();
  12. }
  13. } else {
  14. list = query.getResultList();
  15. }
  16. } catch (javax.persistence.PersistenceException e) {
  17. if (e.getCause() instanceof org.eclipse.persistence.exceptions.QueryException
  18. && e.getMessage() != null
  19. && e.getMessage().contains("Fetch group cannot be set on report query")) {
  20. throw new DevelopmentException("DataManager cannot execute query for single attributes");
  21. } else {
  22. throw e;
  23. }
  24. }
  25. return list;
  26. }

代码示例来源:origin: com.haulmont.reports/reports-core

  1. protected String generateReportName(String sourceName, int iteration) {
  2. if (iteration == 1) {
  3. iteration++; //like in win 7: duplicate of file 'a.txt' is 'a (2).txt', NOT 'a (1).txt'
  4. }
  5. String reportName = StringUtils.stripEnd(sourceName, null);
  6. if (iteration > 0) {
  7. String newReportName = String.format("%s (%s)", reportName, iteration);
  8. if (newReportName.length() > MAX_REPORT_NAME_LENGTH) {
  9. String abbreviatedReportName = StringUtils.abbreviate(reportName, MAX_REPORT_NAME_LENGTH -
  10. String.valueOf(iteration).length() - 3);// 3 cause it us " ()".length
  11. reportName = String.format("%s (%s)", abbreviatedReportName, iteration);
  12. } else {
  13. reportName = newReportName;
  14. }
  15. }
  16. Transaction tx = persistence.createTransaction();
  17. try {
  18. Long countOfReportsWithSameName = (Long) persistence.getEntityManager()
  19. .createQuery("select count(r) from report$Report r where r.name = :name")
  20. .setParameter("name", reportName)
  21. .getSingleResult();
  22. tx.commit();
  23. if (countOfReportsWithSameName > 0) {
  24. return generateReportName(sourceName, ++iteration);
  25. }
  26. } finally {
  27. tx.end();
  28. }
  29. return reportName;
  30. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. SequenceSupport sequenceSupport = getSequenceSupport(sequence);
  2. Query query = em.createNativeQuery(sequenceSupport.sequenceExistsSql(sequenceName));
  3. List list = query.getResultList();
  4. if (list.isEmpty()) {
  5. query = em.createNativeQuery(sequenceSupport.createSequenceSql(sequenceName, sequence.getStartValue(), sequence.getIncrement()));
  6. query.executeUpdate();

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. public Query getQuery(EntityManager em) {
  2. Query query = em.createQuery(queryString);
  3. //we have to replace parameter names in macros because for {@link com.haulmont.cuba.core.sys.querymacro.TimeBetweenQueryMacroHandler}
  4. //we need to replace a parameter with number of days with its value before macros is expanded to JPQL expression
  5. replaceParamsInMacros(query);
  6. applyConstraints(query);
  7. QueryParser parser = QueryTransformerFactory.createParser(queryString);
  8. Set<String> paramNames = parser.getParamNames();
  9. for (Map.Entry<String, Object> entry : queryParams.entrySet()) {
  10. String name = entry.getKey();
  11. if (paramNames.contains(name)) {
  12. Object value = entry.getValue();
  13. if (value instanceof TemporalValue) {
  14. TemporalValue temporalValue = (TemporalValue) value;
  15. query.setParameter(name, temporalValue.date, temporalValue.type);
  16. } else {
  17. if (noConversionParams != null && Arrays.asList(noConversionParams).contains(name)) {
  18. query.setParameter(name, value, false);
  19. } else {
  20. query.setParameter(name, value);
  21. }
  22. }
  23. } else {
  24. if (entry.getValue() != null)
  25. throw new DevelopmentException("Parameter '" + name + "' is not used in the query");
  26. }
  27. }
  28. return query;
  29. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. protected Query createQuery(EntityManager em, LoadContext context, boolean singleResult) {
  2. LoadContext.Query contextQuery = context.getQuery();
  3. RdbmsQueryBuilder queryBuilder = AppBeans.get(RdbmsQueryBuilder.NAME);
  4. queryBuilder.init(
  5. contextQuery == null ? null : contextQuery.getQueryString(),
  6. contextQuery == null ? null : contextQuery.getCondition(),
  7. contextQuery == null ? null : contextQuery.getSort(),
  8. contextQuery == null ? null : contextQuery.getParameters(),
  9. contextQuery == null ? null : contextQuery.getNoConversionParams(),
  10. context.getId(), context.getMetaClass()
  11. );
  12. queryBuilder.setSingleResult(singleResult);
  13. if (!context.getPrevQueries().isEmpty()) {
  14. log.debug("Restrict query by previous results");
  15. queryBuilder.restrictByPreviousResults(userSessionSource.getUserSession().getId(), context.getQueryKey());
  16. }
  17. Query query = queryBuilder.getQuery(em);
  18. if (contextQuery != null) {
  19. if (contextQuery.getFirstResult() != 0)
  20. query.setFirstResult(contextQuery.getFirstResult());
  21. if (contextQuery.getMaxResults() != 0)
  22. query.setMaxResults(contextQuery.getMaxResults());
  23. if (contextQuery.isCacheable()) {
  24. query.setCacheable(contextQuery.isCacheable());
  25. }
  26. }
  27. return query;
  28. }

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. String logMsg = "Load previous query results: " + RdbmsQueryBuilder.printQuery(query.getQueryString());
  2. log.debug(logMsg);
  3. long start = System.currentTimeMillis();
  4. idList = query.getResultList();
  5. tx.commit();

代码示例来源:origin: com.haulmont.cuba/cuba-core

  1. @Override
  2. @Transactional(timeout = 2)
  3. public String executeUpdateSql(String sql) {
  4. checkTestMode();
  5. log.info("started: " + sql);
  6. EntityManager em = persistence.getEntityManager();
  7. Query query = em.createNativeQuery(sql);
  8. query.executeUpdate();
  9. log.info("finished: " + sql);
  10. return "Done";
  11. }

相关文章