Package org.apache.openjpa.kernel

Examples of org.apache.openjpa.kernel.Query


        CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
    }

    public void testMutatedQueryReturnsNewResults() {
        Broker broker = _factory.newBroker();
        Query q =
            broker.newQuery(JPQLParser.LANG_JPQL,
                "select a.name, max(a.age) FROM " +
                    CacheObjectAChild1.class.getSimpleName() +
                    " a group by a.name");

        List l = (List) q.execute();
        CacheTestHelper.iterate(l);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        l = (List) q.execute();
        Object[] result = (Object[]) l.get(0);
        assertEquals(2, result.length);
        assertEquals(String.class, result[0].getClass());
        assertEquals(Long.class, result[1].getClass());

        // now, mutate the query and see what happens
        q.setQuery("select max(a.age),a.name FROM " +
            CacheObjectAChild1.class.getSimpleName() + " a group by a.name");
        CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
        l = (List) q.execute();
        result = (Object[]) l.get(0);
        assertEquals(2, result.length);
        assertEquals(Long.class, result[0].getClass());
        assertEquals(String.class, result[1].getClass());
        CacheTestHelper.iterate(l);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        l = (List) q.execute();
        result = (Object[]) l.get(0);
        assertEquals(2, result.length);
        assertEquals(Long.class, result[0].getClass());
        assertEquals(String.class, result[1].getClass());
    }
View Full Code Here


        super.tearDown();
    }

    public void testNullRelatedPCIsCached() {
        Broker broker = _factory.newBroker();
        Query q = broker.newQuery(JPQLParser.LANG_JPQL, "select a.e FROM " +
            CacheObjectJ.class.getSimpleName() + " a where a.e is null");

        Collection c = (Collection) q.execute();
        CacheTestHelper.iterate(c);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        c = (Collection) q.execute();
        assertNull(c.iterator().next());
    }
View Full Code Here

        assertNull(c.iterator().next());
    }

    public void testNullRelatedPCAndProjectionIsCached() {
        Broker broker = _factory.newBroker();
        Query q =
            broker.newQuery(JPQLParser.LANG_JPQL, "select a.str,a.e FROM " +
                CacheObjectJ.class.getSimpleName() + " a where a.e is null");

        Collection c = (Collection) q.execute();
        CacheTestHelper.iterate(c);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        c = (Collection) q.execute();
        Object[] result = (Object[]) c.iterator().next();
        assertEquals(2, result.length);
        assertEquals(String.class, result[0].getClass());
        assertNull(result[1]);
    }
View Full Code Here

        assertNull(result[1]);
    }

    public void testNonNullRelatedPCIsCached() {
        Broker broker = _factory.newBroker();
        Query q = broker.newQuery(JPQLParser.LANG_JPQL, "select a.e FROM " +
            CacheObjectJ.class.getSimpleName() + " a where a.e  is not null");

        Collection c = (Collection) q.execute();
        CacheTestHelper.iterate(c);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        c = (Collection) q.execute();
        assertEquals(CacheObjectE.class, c.iterator().next().getClass());
    }
View Full Code Here

        assertEquals(CacheObjectE.class, c.iterator().next().getClass());
    }

    public void testNonNullRelatedPCAndProjectionIsCached() {
        Broker broker = _factory.newBroker();
        Query q =
            broker.newQuery(JPQLParser.LANG_JPQL, "select a.str,a.e FROM " +
                CacheObjectJ.class.getSimpleName() +
                " a where a.e is not null");

        Collection c = (Collection) q.execute();
        CacheTestHelper.iterate(c);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        c = (Collection) q.execute();
        Object[] result = (Object[]) c.iterator().next();
        assertEquals(2, result.length);
        assertEquals(String.class, result[0].getClass());
        assertEquals(CacheObjectE.class, result[1].getClass());
    }
View Full Code Here

        assertEquals(CacheObjectE.class, result[1].getClass());
    }

    public void testEmbeddedFields() {
        Broker broker = _factory.newBroker();
        Query q =
            broker.newQuery(JPQLParser.LANG_JPQL, "select embedded FROM " +
                SelfReferencingCacheTestObject.class.getSimpleName() +
                " a where a.str='foo'");

        List l = null;
        try {
            l = (List) q.execute();
            assertEquals(CacheObjectAChild1.class, l.get(0).getClass());
        } catch (UserException ue) {
            //bug(1150, "embedded-field projections cause exception");
            ue.printStackTrace();
            return;
        }

        CacheTestHelper.iterate(l);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        l = (List) q.execute();
        assertEquals(CacheObjectAChild1.class, l.get(0).getClass());
    }
View Full Code Here

        rangeTestHelper(20, 28);
    }

    private void rangeTestHelper(final int start, final int end) {
        Broker broker = _factory.newBroker();
        Query q = broker.newQuery(JPQLParser.LANG_JPQL, "Select a FROM " +
            CacheObjectAChild1.class.getSimpleName() + " a");
        q.setRange(start, end);

        // should not yet be in the cache
        CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
        Collection c = (Collection) q.execute();

        // iterate the results. This will cause the query to be
        // enlisted in the cache.
        CacheTestHelper.iterate(c);
        assertEquals(end - start, c.size());
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);

        broker.close();

        broker = _factory.newBroker();
        q = broker.newQuery(JPQLParser.LANG_JPQL, "Select a FROM " +
            CacheObjectAChild1.class.getSimpleName() + " a");
        q.setRange(start, end);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);
        c = (Collection) q.execute();
        assertEquals(end - start, c.size());

        // now check if a smaller range is in cache
        q = broker.newQuery(JPQLParser.LANG_JPQL, "Select a FROM " +
            CacheObjectAChild1.class.getSimpleName() + " a");
        q.setRange(start, end - 1);
        CacheTestHelper.assertInCache(this, q, Boolean.FALSE);
        c = (Collection) q.execute();
        assertEquals(end - start - 1, c.size());
        broker.close();
    }
View Full Code Here

        broker.close();
    }

    public void testResultClassIsCached() {
        Broker broker = _factory.newBroker();
        Query q = broker.newQuery(JPQLParser.LANG_JPQL, "Select a FROM " +
            CacheObjectAChild1.class.getSimpleName() + " a");
        q.setResultType(Object.class);
        Collection c = (Collection) q.execute();
        CacheTestHelper.iterate(c);
        CacheTestHelper.assertInCache(this, q, Boolean.TRUE);
    }
View Full Code Here

        super(test, "datacachecactusapp");
    }

    public void testQueryResultTypesWithThis() {
        Broker broker = getBroker();
        Query q =
            broker.newQuery(JPQLParser.LANG_JPQL, "select a.name,a FROM " +
                CacheObjectA.class.getSimpleName() + " a");

        Class[] types = q.getProjectionTypes();
        assertEquals(2, types.length);
        assertEquals(String.class, types[0]);
        assertEquals(CacheObjectA.class, types[1]);
    }
View Full Code Here

        assertEquals(CacheObjectA.class, types[1]);
    }

    public void testQueryResultTypesWithRelated() {
        Broker broker = getBroker();
        Query q = broker
            .newQuery(JPQLParser.LANG_JPQL, "select a.name,a.relatedB FROM " +
                CacheObjectA.class.getSimpleName() + " a");

        //CacheObjectA.class,           "select name, relatedB");
        Class[] types = q.getProjectionTypes();
        assertEquals(2, types.length);
        assertEquals(String.class, types[0]);
        assertEquals(CacheObjectB.class, types[1]);
    }
View Full Code Here

TOP

Related Classes of org.apache.openjpa.kernel.Query

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.