javax.jcr.query.Query类的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(13.2k)|赞(0)|评价(0)|浏览(218)

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

Query介绍

[英]A Query object.
[中]Query对象。

代码示例

代码示例来源:origin: stackoverflow.com

  1. Blob imageFor(String name, HttpServletResponse res) {
  2. // find desired image
  3. PersistenceManager pm = PMF.get().getPersistenceManager();
  4. Query query = pm.newQuery("select from MyImage " +
  5. "where name = nameParam " +
  6. "parameters String nameParam");
  7. List<MyImage> results = (List<MyImage>)query.execute(name);
  8. Blob image = results.iterator().next().getImage();
  9. // serve the first image
  10. res.setContentType("image/jpeg");
  11. res.getOutputStream().write(image.getBytes());
  12. }

代码示例来源:origin: stackoverflow.com

  1. public StockClient[] getStocks() throws NotLoggedInException {
  2. checkLoggedIn();
  3. PersistenceManager pm = getPersistenceManager();
  4. List<StockClient> stockclients = new ArrayList<StockClient>();
  5. try {
  6. Query q = pm.newQuery(Stock.class, "user == u");
  7. q.declareParameters("com.google.appengine.api.users.User u");
  8. q.setOrdering("createDate");
  9. List<Stock> stocks = (List<Stock>) q.execute(getUser());
  10. for (Stock stock : stocks)
  11. {
  12. stockclients.add(new StockClient(stock.getId(), stock.getSymbol(), stock.getCreateDate()));
  13. }
  14. } finally {
  15. pm.close();
  16. }
  17. return (StockClient[]) stockclients.toArray(new StockClient[0]);
  18. }

代码示例来源:origin: org.onehippo.cms7/hippo-addon-channel-manager-content-service

  1. static NodeIterator executeQuery(final Session session, final Node templateQueryNode) throws RepositoryException {
  2. final String statement = templateQueryNode.getProperty("jcr:statement").getString();
  3. final String language = templateQueryNode.getProperty("jcr:language").getString();
  4. final QueryManager queryManager = session.getWorkspace().getQueryManager();
  5. final Query query = queryManager.createQuery(statement, language);
  6. final QueryResult queryResult = query.execute();
  7. return queryResult.getNodes();
  8. }

代码示例来源:origin: apache/jackrabbit

  1. public void testSimpleQuerySQL4() throws Exception {
  2. Node foo = testRootNode.addNode("foo");
  3. foo.setProperty("bla", new String[]{"bla"});
  4. Node bla = testRootNode.addNode("bla");
  5. bla.setProperty("bla", new String[]{"bla"});
  6. testRootNode.save();
  7. String sql = "SELECT * FROM nt:unstructured WHERE jcr:path LIKE '" + testRoot + "/%'";
  8. Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
  9. QueryResult result = q.execute();
  10. checkResult(result, 2);
  11. }

代码示例来源:origin: apache/jackrabbit-oak

  1. private void run0() throws RepositoryException {
  2. session.refresh(false);
  3. QueryManager qm = session.getWorkspace().getQueryManager();
  4. Query q = qm.createQuery("select * from [nt:base] where [" + indexedPropName + "] = $status " +
  5. "option(index tag fooIndex)", Query.JCR_SQL2);
  6. q.bindValue("status", session.getValueFactory().createValue(randomStatus()));
  7. QueryResult result = q.execute();
  8. //With property index at time traversing index wins (somehow reporting lower cost)
  9. //and that leads to warning. So limit the iterator size
  10. resultSize += Iterators.size(Iterators.limit(result.getNodes(), 500));
  11. }
  12. }

代码示例来源:origin: apache/jackrabbit

  1. public void testGetSize() throws RepositoryException {
  2. QueryManager qm = superuser.getWorkspace().getQueryManager();
  3. for (int i = 0; i < 10; i++) {
  4. String stmt = testPath + "/*[@" + propertyName1 + " < 1000]";
  5. QueryResult result = qm.createQuery(stmt, Query.XPATH).execute();
  6. assertEquals("Wrong size of NodeIterator in result",
  7. INITIAL_NODE_NUM - i, result.getNodes().getSize());
  8. // remove node for the next iteration
  9. testRootNode.getNode("node" + i).remove();
  10. testRootNode.save();
  11. }
  12. }

代码示例来源:origin: com.geeoz.atom/atom-kie

  1. final Session session = activity.getNewJcrSession();
  2. final QueryManager queryManager =
  3. session.getWorkspace().getQueryManager();
  4. final Query query =
  5. queryManager.createQuery(request, Query.JCR_SQL2);
  6. final Map<String, Object> map = item.getParameters();
  7. final String entryValue = (String) entry.getValue();
  8. final Value value =
  9. session.getValueFactory().createValue(entryValue);
  10. query.bindValue(entryKey, value);
  11. final QueryResult result = query.execute();
  12. final NodeIterator iterator = result.getNodes();
  13. while (iterator.hasNext()) {
  14. final Node node = iterator.nextNode();
  15. item.getResults().put("id", node.getIdentifier());
  16. session.logout();
  17. } catch (RepositoryException e) {
  18. e.printStackTrace();

代码示例来源:origin: info.magnolia.ui/magnolia-ui-framework

  1. protected QueryResult executeQuery(String statement, String language, int limit, int offset) throws RepositoryException {
  2. final Session jcrSession = MgnlContext.getJCRSession(WORKSPACE_NAME);
  3. final QueryManager jcrQueryManager = jcrSession.getWorkspace().getQueryManager();
  4. final Query query = jcrQueryManager.createQuery(statement, language);
  5. if (limit > 0) {
  6. query.setLimit(limit);
  7. }
  8. if (offset >= 0) {
  9. query.setOffset(offset);
  10. }
  11. logger.debug("Executing query against workspace [{}] with statement [{}] and limit {} and offset {}...", new Object[]{WORKSPACE_NAME, statement, limit, offset});
  12. long start = System.currentTimeMillis();
  13. final QueryResult result = query.execute();
  14. logger.debug("Query execution took {} ms", System.currentTimeMillis() - start);
  15. return result;
  16. }

代码示例来源:origin: apache/jackrabbit-oak

  1. public void testScoreWithOr() throws Exception {
  2. Session session = superuser;
  3. QueryManager qm = session.getWorkspace().getQueryManager();
  4. Node n1 = testRootNode.addNode("node1");
  5. n1.setProperty("text", "hello");
  6. n1.setProperty("id", "1");
  7. session.save();
  8. String xpath = "/jcr:root//*[jcr:contains(@text, 'hello') or @id = '1']";
  9. Query q = qm.createQuery(xpath, "xpath");
  10. String result = getResult(q.execute(), "jcr:path");
  11. assertEquals("/testroot/node1", result);
  12. }

代码示例来源:origin: apache/jackrabbit

  1. public void testFulltextBindVariableSQL() throws Exception {
  2. Node foo = testRootNode.addNode("foo");
  3. foo.setProperty("mytext", new String[]{"the quick brown fox jumps over the lazy dog."});
  4. testRootNode.save();
  5. String sql = "SELECT * FROM [nt:unstructured]"
  6. + " WHERE ISCHILDNODE([" + testRoot + "])"
  7. + " AND CONTAINS(mytext, $searchExpression)";
  8. Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.JCR_SQL2);
  9. assertEquals("Expected exactly 1 bind variable", 1, q.getBindVariableNames().length);
  10. assertEquals("searchExpression", q.getBindVariableNames()[0]);
  11. q.bindValue("searchExpression", superuser.getValueFactory().createValue("fox"));
  12. QueryResult result = q.execute();
  13. checkResult(result, 1);
  14. }

代码示例来源:origin: info.magnolia.templating/magnolia-templating-essentials-models

  1. final QueryManager jcrQueryManager = jcrSession.getWorkspace().getQueryManager();
  2. final Query query = jcrQueryManager.createQuery(String.format(SEARCH_QUERY_PATTERN, StringUtils.defaultIfBlank(returnItemType, JcrConstants.NT_BASE), startPath, queryString), Query.SQL);
  3. query.setLimit(limit);
  4. query.setOffset(offset);
  5. log.debug("Executing query against workspace [{}] with statement [{}] and limit {} and offset {}...", workspace, query.getStatement(), limit, offset);
  6. long start = System.currentTimeMillis();
  7. QueryResult qr = query.execute();
  8. log.debug("Query execution took {} ms", System.currentTimeMillis() - start);
  9. RowIterator it = qr.getRows();
  10. if (PermissionUtil.isGranted(jcrSession, node.getPath(), Session.ACTION_READ)) {
  11. String excerpt = hasExcerptValue(row) ? row.getValue("rep:excerpt()").getString() : "";
  12. node.setProperty("excerpt", excerpt);
  13. result.add(new ContentMap(new I18nNodeWrapper(node)));

代码示例来源:origin: org.apache.sling/org.apache.sling.launchpad.test-services

  1. @Override
  2. protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response)
  3. throws ServletException, IOException {
  4. response.setContentType("text/plain");
  5. String queryText = request.getParameter("q");
  6. if ( queryText == null || queryText.isEmpty() ) {
  7. response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
  8. response.getWriter().write("Missing mandatory 'q' parameter");
  9. return;
  10. }
  11. Session session = request.getResourceResolver().adaptTo(Session.class);
  12. try {
  13. Query query = session.getWorkspace().getQueryManager().createQuery("SELECT * FROM [nt:base] AS s WHERE CONTAINS(s.*, $queryText)", Query.JCR_SQL2);
  14. query.bindValue("queryText", session.getValueFactory().createValue(queryText));
  15. QueryResult result = query.execute();
  16. NodeIterator iterator = result.getNodes();
  17. while( iterator.hasNext() ) {
  18. response.getWriter().println(iterator.nextNode().getPath());
  19. }
  20. } catch (RepositoryException e) {
  21. throw new ServletException(e);
  22. }
  23. }

代码示例来源:origin: apache/jackrabbit

  1. /**
  2. * Stores a {@link javax.jcr.query.Query#XPATH} query at:
  3. * <code>testRoot + "/" + nodeName1</code>.
  4. * @throws NotExecutableException if nt:query is not supported.
  5. */
  6. public void testSave() throws RepositoryException, NotExecutableException {
  7. checkNtQuery();
  8. Query query = superuser.getWorkspace().getQueryManager().createQuery(statement, Query.XPATH);
  9. query.storeAsNode(testRoot + "/" + nodeName1);
  10. assertTrue("Node has not been stored", testRootNode.hasNode(nodeName1));
  11. Node queryNode = testRootNode.getNode(nodeName1);
  12. assertTrue("Query node is not of type nt:query", queryNode.isNodeType(ntQuery));
  13. Query query2 = superuser.getWorkspace().getQueryManager().getQuery(queryNode);
  14. assertEquals("Persisted query does not match initial query.", query.getStatement(), query2.getStatement());
  15. }

代码示例来源:origin: Adobe-Consulting-Services/acs-aem-commons

  1. private ResultsPage fetchResults(int limit, int offset) throws ReportException {
  2. prepareStatement();
  3. ResourceResolver resolver = request.getResourceResolver();
  4. Session session = resolver.adaptTo(Session.class);
  5. List<Object> results = new ArrayList<>();
  6. try {
  7. QueryManager queryMgr = session.getWorkspace().getQueryManager();
  8. Query query = queryMgr.createQuery(statement, config.getQueryLanguage());
  9. if (page != -1) {
  10. log.debug("Fetching results with limit {} and offset {}", limit, offset);
  11. query.setLimit(limit);
  12. query.setOffset(offset);
  13. } else {
  14. log.debug("Fetching all results");
  15. }
  16. QueryResult result = query.execute();
  17. NodeIterator nodes = result.getNodes();
  18. while (nodes.hasNext()) {
  19. results.add(resolver.getResource(nodes.nextNode().getPath()));
  20. }
  21. } catch (RepositoryException re) {
  22. log.error("Exception executing search results", re);
  23. throw new ReportException("Exception executing search results", re);
  24. }
  25. return new ResultsPage(results, config.getPageSize(), page);
  26. }

代码示例来源:origin: apache/jackrabbit

  1. /**
  2. * Verify that the jcr:path is present in the query result.
  3. */
  4. public void testJcrPath() throws RepositoryException, NotExecutableException {
  5. String nodeTypeName = session.getRootNode().getPrimaryNodeType().getName();
  6. String queryStatement = "//element(*, " + nodeTypeName + ")";
  7. // execute the search query
  8. Query query = session.getWorkspace().getQueryManager().createQuery(queryStatement, qsXPATH);
  9. QueryResult result = query.execute();
  10. assertTrue("jcr:path must be present in query result row",
  11. Arrays.asList(result.getColumnNames()).contains(jcrPath));
  12. }
  13. }

代码示例来源:origin: apache/jackrabbit

  1. /**
  2. * Tests it the statement returned by {@link Query#getStatement()} is equal
  3. * to the one passed in createQuery().
  4. */
  5. public void testGetStatement() throws RepositoryException {
  6. String statement = "/" + jcrRoot + "/foo";
  7. Query q = session.getWorkspace().getQueryManager().createQuery(statement, qsXPATH);
  8. assertEquals("Statement returned by Query.getStatement() is not equal to the initial statement.",
  9. statement,
  10. q.getStatement());
  11. }
  12. }

代码示例来源:origin: apache/jackrabbit-oak

  1. private boolean performQuery(@NotNull final TestContext ec) throws RepositoryException {
  2. QueryManager qm = ec.session.getWorkspace().getQueryManager();
  3. ValueFactory vf = ec.session.getValueFactory();
  4. Query q = qm.createQuery("SELECT * FROM [nt:base] WHERE [title] = $title", Query.JCR_SQL2);
  5. q.bindValue("title", vf.createValue(ec.title));
  6. LOG.trace("statement: {} - title: {}", q.getStatement(), ec.title);
  7. RowIterator rows = q.execute().getRows();
  8. if (rows.hasNext()) {
  9. rows.nextRow().getPath();
  10. return true;
  11. } else {
  12. return false;
  13. }
  14. }

代码示例来源:origin: apache/jackrabbit

  1. public void testSetOffset() throws RepositoryException {
  2. testRootNode.addNode(nodeName1, testNodeType);
  3. testRootNode.addNode(nodeName2, testNodeType);
  4. testRootNode.addNode(nodeName3, testNodeType);
  5. superuser.save();
  6. for (int i = 0; i < 5; i++) {
  7. Query query = qf.createQuery(
  8. qf.selector(testNodeType, "s"),
  9. qf.descendantNode("s", testRoot),
  10. null,
  11. null
  12. );
  13. query.setOffset(i);
  14. long expected = Math.max(3 - i, 0);
  15. assertEquals("Wrong numer of results", expected,
  16. getSize(query.execute().getNodes()));
  17. }
  18. }
  19. }

代码示例来源:origin: apache/jackrabbit-oak

  1. protected void searchCommon(QueryManager qm, ExecutionContext context)
  2. throws RepositoryException {
  3. /** Execute standard query */
  4. Query stdQuery = getStandardQuery(qm, context);
  5. stdQuery.setLimit(LIMIT);
  6. QueryResult stdResult = stdQuery.execute();
  7. RowIterator stdIt = stdResult.getRows();
  8. // Iterate the standard shown first
  9. for (int rows = 0; stdIt.hasNext() && rows < LIMIT; rows++) {
  10. Node node = stdIt.nextRow().getNode();
  11. LOG.debug(node.getPath());
  12. }
  13. }

代码示例来源:origin: ModeShape/modeshape

  1. @Test
  2. public void shouldLoadStoredQuery() throws Exception {
  3. String statement = "SELECT * FROM [nt:unstructured]";
  4. QueryManager queryManager = workspace.getQueryManager();
  5. Query query = queryManager.createQuery(statement, Query.JCR_SQL2);
  6. Node node = query.storeAsNode("/storedQuery");
  7. Query loaded = queryManager.getQuery(node);
  8. assertThat(loaded, is(notNullValue()));
  9. assertThat(loaded.getLanguage(), is(Query.JCR_SQL2));
  10. assertThat(loaded.getStatement(), is(statement));
  11. assertThat(loaded.getStoredQueryPath(), is(node.getPath()));
  12. }

相关文章