Search in sources :

Example 81 with Query

use of javax.jcr.query.Query in project jackrabbit by apache.

the class SimpleQueryTest method testNotEqual.

public void testNotEqual() throws Exception {
    Node n = testRootNode.addNode("node1");
    n.setProperty("value", new String[] { "foo" });
    n = testRootNode.addNode("node2");
    n.setProperty("value", new String[] { "bar" });
    n = testRootNode.addNode("node3");
    n.setProperty("value", new String[] { "foobar" });
    testRootNode.save();
    String jcrql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value <> 'bar'";
    Query q = superuser.getWorkspace().getQueryManager().createQuery(jcrql, Query.SQL);
    QueryResult result = q.execute();
    checkResult(result, 2);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Node(javax.jcr.Node)

Example 82 with Query

use of javax.jcr.query.Query in project jackrabbit by apache.

the class SimpleQueryTest method testIsNotNull.

public void testIsNotNull() throws Exception {
    Node foo = testRootNode.addNode("foo");
    foo.setProperty("mytext", "the quick brown fox jumps over the lazy dog.");
    Node bar = testRootNode.addNode("bar");
    bar.setProperty("text", "the quick brown fox jumps over the lazy dog.");
    // documents which field name is not exactly "mytext" should not match (JCR-1051)
    bar.setProperty("mytextwhichstartswithmytext", "the quick brown fox jumps over the lazy dog.");
    testRootNode.save();
    String sql = "SELECT * FROM nt:unstructured WHERE mytext is not null";
    Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    QueryResult result = q.execute();
    checkResult(result, 1);
    String xpath = "//*[@jcr:primaryType='nt:unstructured' and @mytext]";
    q = superuser.getWorkspace().getQueryManager().createQuery(xpath, Query.XPATH);
    result = q.execute();
    checkResult(result, 1);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Node(javax.jcr.Node)

Example 83 with Query

use of javax.jcr.query.Query in project jackrabbit by apache.

the class SimpleQueryTest method testLikePatternBetween.

public void testLikePatternBetween() throws Exception {
    Node n = testRootNode.addNode("node1");
    n.setProperty("value", new String[] { "ping" });
    n = testRootNode.addNode("node2");
    n.setProperty("value", new String[] { "pong" });
    n = testRootNode.addNode("node3");
    n.setProperty("value", new String[] { "puung" });
    testRootNode.save();
    String sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'ping'";
    Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    QueryResult result = q.execute();
    checkResult(result, 1);
    sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'p_ng'";
    q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    result = q.execute();
    checkResult(result, 2);
    sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'p%ng'";
    q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    result = q.execute();
    checkResult(result, 3);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Node(javax.jcr.Node)

Example 84 with Query

use of javax.jcr.query.Query in project jackrabbit by apache.

the class SimpleQueryTest method testLikePatternEnd.

public void testLikePatternEnd() throws Exception {
    Node n = testRootNode.addNode("node1");
    n.setProperty("value", new String[] { "bli" });
    n = testRootNode.addNode("node2");
    n.setProperty("value", new String[] { "bla" });
    n = testRootNode.addNode("node3");
    n.setProperty("value", new String[] { "blub" });
    testRootNode.save();
    String sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'bli'";
    Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    QueryResult result = q.execute();
    checkResult(result, 1);
    sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'bl_'";
    q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    result = q.execute();
    checkResult(result, 2);
    sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND value LIKE 'bl%'";
    q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    result = q.execute();
    checkResult(result, 3);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Node(javax.jcr.Node)

Example 85 with Query

use of javax.jcr.query.Query in project jackrabbit by apache.

the class SimpleQueryTest method testDateField1.

public void testDateField1() throws Exception {
    Node n = testRootNode.addNode("marcel");
    Calendar marcel = Calendar.getInstance();
    marcel.set(1976, 4, 20, 15, 40);
    n.setProperty("birth", new Value[] { superuser.getValueFactory().createValue(marcel) });
    n = testRootNode.addNode("vanessa");
    Calendar vanessa = Calendar.getInstance();
    vanessa.set(1975, 4, 10, 13, 30);
    n.setProperty("birth", new Value[] { superuser.getValueFactory().createValue(vanessa) });
    testRootNode.save();
    String sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND birth > TIMESTAMP '1976-01-01T00:00:00.000+01:00'";
    Query q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    QueryResult result = q.execute();
    checkResult(result, 1);
    sql = "SELECT * FROM nt:base WHERE jcr:path LIKE '" + testRoot + "/%' AND birth > TIMESTAMP '1975-01-01T00:00:00.000+01:00'";
    q = superuser.getWorkspace().getQueryManager().createQuery(sql, Query.SQL);
    result = q.execute();
    checkResult(result, 2);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Node(javax.jcr.Node) Calendar(java.util.Calendar)

Aggregations

Query (javax.jcr.query.Query)228 Node (javax.jcr.Node)141 QueryResult (javax.jcr.query.QueryResult)122 QueryManager (javax.jcr.query.QueryManager)83 Session (javax.jcr.Session)67 NodeIterator (javax.jcr.NodeIterator)51 Test (org.junit.Test)36 RowIterator (javax.jcr.query.RowIterator)35 RepositoryException (javax.jcr.RepositoryException)33 AbstractRepositoryTest (org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest)24 ArrayList (java.util.ArrayList)15 Row (javax.jcr.query.Row)15 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)15 InvalidQueryException (javax.jcr.query.InvalidQueryException)14 FacetResult (org.apache.jackrabbit.oak.query.facet.FacetResult)13 ValueFactory (javax.jcr.ValueFactory)12 Value (javax.jcr.Value)9 QueryObjectModel (javax.jcr.query.qom.QueryObjectModel)8 MetadataRepositoryException (org.apache.archiva.metadata.repository.MetadataRepositoryException)6 Calendar (java.util.Calendar)5