Package org.apache.cayenne.query

Examples of org.apache.cayenne.query.PrefetchTreeNode


            for (int i = 0; i < len; i++) {
                rowsColumn.add((DataRow) rows.get(i)[position]);
            }

            if (prefetchTree != null) {
                PrefetchTreeNode prefetchTreeNode = null;
                for (PrefetchTreeNode prefetch : prefetchTree.getChildren()) {
                    if (descriptor.getEntity().getName().equals(prefetch.getEntityName())) {
                        if (prefetchTreeNode == null) {
                            prefetchTreeNode = new PrefetchTreeNode();
                        }
                        PrefetchTreeNode addPath = prefetchTreeNode.addPath(prefetch.getPath());
                        addPath.setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
                        addPath.setPhantom(false);
                    }
                }
                prefetchTree = prefetchTreeNode;
            }
View Full Code Here


                        + "#result('DATE_OF_BIRTH' 'java.util.Date'), "
                        + "#result('t0.ARTIST_ID' 'int' '' 'ARTIST_ID') "
                        + "FROM ARTIST t0, PAINTING t1 "
                        + "WHERE t0.ARTIST_ID = t1.ARTIST_ID");

        PrefetchTreeNode prefetch = q.addPrefetch(Artist.PAINTING_ARRAY_PROPERTY);
        assertEquals(
                "Default semantics for SQLTemplate is assumed to be joint.",
                PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS,
                prefetch.getSemantics());
        q.setFetchingDataRows(false);

        final List<?> objects = context.performQuery(q);

        queryInterceptor.runWithQueriesBlocked(new UnitTestClosure() {
View Full Code Here

        }

        // check if such prefetch already exists
        if (selectQuery.getPrefetchTree() != null) {

            PrefetchTreeNode node = selectQuery.getPrefetchTree().getNode(prefetch);
            if (node != null && !node.isPhantom()) {
                return;
            }
        }

        selectQuery.addPrefetch(prefetch);
View Full Code Here

            return super.visitSubselect(expression);
        }

        private void prepareFetchJoin(EJBQLJoin join) {
            if (prefetchTree == null) {
                prefetchTree = new PrefetchTreeNode();
            }
            EJBQLPath fetchJoin = (EJBQLPath) join.getChild(0);
            addPath(fetchJoin);

            PrefetchTreeNode node = prefetchTree.addPath(fetchJoin.getRelativePath());
            node.setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
            node.setPhantom(false);
            node.setEjbqlPathEntityId(fetchJoin.getChild(0).getText());
        }
View Full Code Here

    public void addPrefetch(String prefetch) {
       
        // check if such prefetch already exists
        if (selectQuery.getPrefetchTree() != null) {

            PrefetchTreeNode node = selectQuery.getPrefetchTree().getNode(prefetch);
            if (node != null && !node.isPhantom()) {
                return;
            }
        }

        selectQuery.addPrefetch(prefetch);
View Full Code Here

        @Override
        void convert(List<DataRow> mainRows) {

            ClassDescriptor descriptor = metadata.getClassDescriptor();
            PrefetchTreeNode prefetchTree = metadata.getPrefetchTree();

            PrefetchProcessorNode node = toResultsTree(descriptor, prefetchTree, mainRows);
            List<Persistent> objects = node.getObjects();
            updateResponse(mainRows, objects != null
                    ? objects
View Full Code Here

            for (int i = 0; i < len; i++) {
                rowsColumn.add((DataRow) rows.get(i)[position]);
            }

            if (prefetchTree != null) {
                PrefetchTreeNode prefetchTreeNode = null;
                for (PrefetchTreeNode prefetch : prefetchTree.getChildren()) {
                    if (descriptor.getEntity().getName().equals(prefetch.getEntityName())) {
                        if (prefetchTreeNode == null) {
                            prefetchTreeNode = new PrefetchTreeNode();
                        }
                        PrefetchTreeNode addPath = prefetchTreeNode.addPath(prefetch
                                .getPath());
                        addPath.setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
                        addPath.setPhantom(false);
                    }
                }
                prefetchTree = prefetchTreeNode;
            }
View Full Code Here

                    .getPrefetchTree()
                    .adjacentJointNodes()
                    .iterator();

            while (jointPrefetches.hasNext()) {
                PrefetchTreeNode prefetch = (PrefetchTreeNode) jointPrefetches.next();

                // for each prefetch add all joins plus columns from the target entity
                Expression prefetchExp = Expression.fromString(prefetch.getPath());
                Expression dbPrefetch = oe.translateToDbPath(prefetchExp);

                Iterator it = table.resolvePathComponents(dbPrefetch);

                DbRelationship r = null;
View Full Code Here

            List mainRows = response.firstList();
            if (mainRows != null && !mainRows.isEmpty()) {

                List objects;
                ClassDescriptor descriptor = metadata.getClassDescriptor();
                PrefetchTreeNode prefetchTree = metadata.getPrefetchTree();

                // take a shortcut when no prefetches exist...
                if (prefetchTree == null) {
                    objects = new ObjectResolver(context, descriptor, metadata
                            .isRefreshingObjects(), metadata.isResolvingInherited())
View Full Code Here

        List<Object> clientObjects = new ArrayList<Object>(serverObjects.size());

        ObjectDetachOperation op = new ObjectDetachOperation(serverResolver
                .getClientEntityResolver());

        PrefetchTreeNode prefetchTree = serverMetadata.getPrefetchTree();

        for (Object serverObject : serverObjects) {
            clientObjects.add(convertSingleObject(prefetchTree, op, serverObject));
        }
View Full Code Here

TOP

Related Classes of org.apache.cayenne.query.PrefetchTreeNode

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.