Package org.apache.cayenne.ejbql

Examples of org.apache.cayenne.ejbql.EJBQLCompiledExpression


    private SQLTemplate translateSelect(
            String ejbql,
            final Map<Integer, Object> queryParameters) {
        EJBQLParser parser = EJBQLParserFactory.getParser();
        EJBQLCompiledExpression select = parser.compile(ejbql, runtime
                .getDataDomain()
                .getEntityResolver());
        EJBQLQuery query = new EJBQLQuery(ejbql) {

            @Override
            public Map<Integer, Object> getPositionalParameters() {
                return queryParameters;
            }
        };

        EJBQLTranslationContext tr = new EJBQLTranslationContext(runtime
                .getDataDomain()
                .getEntityResolver(), query, select, new JdbcEJBQLTranslatorFactory());
        select.getExpression().visit(new EJBQLSelectTranslator(tr));
        return tr.getQuery();
    }
View Full Code Here


    // if parameter value is null (in this test x := null) we will generate "IS NULL"
    public void testEqualsNullParameter() {
        String ejbql = "select p from Painting p WHERE p.toArtist=:x";
        EJBQLParser parser = EJBQLParserFactory.getParser();
        EJBQLCompiledExpression select = parser.compile(ejbql, runtime
                .getDataDomain()
                .getEntityResolver());
        EJBQLQuery query = new EJBQLQuery(ejbql);
        query.setParameter("x", null);

        EJBQLTranslationContext tr = new EJBQLTranslationContext(runtime
                .getDataDomain()
                .getEntityResolver(), query, select, new JdbcEJBQLTranslatorFactory());
        select.getExpression().visit(new EJBQLSelectTranslator(tr));
        String sql = tr.getQuery().getDefaultTemplate();
        assertTrue(sql, sql.endsWith("t0.ARTIST_ID IS NULL"));
    }
View Full Code Here

    // if parameter value is null and more than one parameter in query
    public void testEqualsNullAndNotNullParameter() {
        String ejbql = "select p from Painting p WHERE p.toArtist=:x OR p.toArtist.artistName=:b";
        EJBQLParser parser = EJBQLParserFactory.getParser();
        EJBQLCompiledExpression select = parser.compile(ejbql, runtime
                .getDataDomain()
                .getEntityResolver());
        EJBQLQuery query = new EJBQLQuery(ejbql);
        query.setParameter("x", null);
        query.setParameter("b", "Y");

        EJBQLTranslationContext tr = new EJBQLTranslationContext(runtime
                .getDataDomain()
                .getEntityResolver(), query, select, new JdbcEJBQLTranslatorFactory());
        select.getExpression().visit(new EJBQLSelectTranslator(tr));
        String sql = tr.getQuery().getDefaultTemplate();
        assertTrue(sql, sql
                .endsWith("t0.ARTIST_ID IS NULL OR t1.ARTIST_NAME = #bind($id0)"));
    }
View Full Code Here

    }

    public void testGetExpression() {
        String ejbql = "select a FROM Artist a";
        EJBQLQuery query = new EJBQLQuery(ejbql);
        EJBQLCompiledExpression parsed = query.getExpression(runtime
                .getDataDomain()
                .getEntityResolver());
        assertNotNull(parsed);
        assertEquals(ejbql, parsed.getSource());
    }
View Full Code Here

* @since 3.0
*/
class EJBQLQueryMetadata extends BaseQueryMetadata {

    boolean resolve(EntityResolver resolver, EJBQLQuery query) {
        EJBQLCompiledExpression expression = query.getExpression(resolver);
        setPrefetchTree(expression.getPrefetchTree());
        resultSetMapping = expression.getResult() != null ? expression
                .getResult()
                .getResolvedComponents(resolver) : null;

        ObjEntity root = expression.getRootDescriptor().getEntity();

        if (super.resolve(root, resolver, null)) {

            if (QueryCacheStrategy.NO_CACHE == getCacheStrategy()) {

View Full Code Here

TOP

Related Classes of org.apache.cayenne.ejbql.EJBQLCompiledExpression

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.