Package org.apache.cayenne

Examples of org.apache.cayenne.QueryResponse


                Arrays.asList(o2)));

        ClientChannel channel = new ClientChannel(connection);

        context.setChannel(channel);
        QueryResponse response = channel.onQuery(context, new SelectQuery("test_entity"));
        assertNotNull(response);
        assertEquals(1, response.size());
        List list = response.firstList();
        assertNotNull(list);
        assertEquals(1, list.size());
        assertTrue("Expected cached object, got: " + list, list.contains(o1));
        assertSame(o1, context.getGraphManager().getNode(oid));
    }
View Full Code Here


        return eventManager;
    }

    public QueryResponse onQuery(ObjectContext context, Query query) {

        QueryResponse response = (QueryResponse) send(
                new QueryMessage(query),
                QueryResponse.class);

        // if needed, register objects in provided context, rewriting the response
        // (assuming all lists are mutable)

        if (context != null) {

            EntityResolver resolver = context.getEntityResolver();
            QueryMetadata info = query.getMetaData(resolver);

            if (!info.isFetchingDataRows()) {

                response.reset();

                while (response.next()) {
                    if (response.isList()) {

                        List objects = response.currentList();
                        DeepMergeOperation merger = new DeepMergeOperation(context);
                        if (!objects.isEmpty()) {
                            List<Object> rsMapping = info.getResultSetMapping();
                            if (rsMapping == null) {
                                convertSingleObjects(resolver, objects, merger);
View Full Code Here

        return eventManager;
    }

    public QueryResponse onQuery(ObjectContext context, Query query) {

        QueryResponse response = (QueryResponse) send(
                new QueryMessage(query),
                QueryResponse.class);

        // if needed, register objects in provided context, rewriting the response
        // (assuming all lists are mutable)

        if (context != null) {

            EntityResolver resolver = context.getEntityResolver();
            QueryMetadata info = query.getMetaData(resolver);

            if (!info.isFetchingDataRows()) {

                response.reset();

                while (response.next()) {
                    if (response.isList()) {

                        List objects = response.currentList();

                        if (!objects.isEmpty()) {

                            DeepMergeOperation merger = new DeepMergeOperation(context);
View Full Code Here

        // dirty snapshot; must go down the stack instead
        ObjectIdQuery query = new ObjectIdQuery(
                object.getObjectId(),
                true,
                ObjectIdQuery.CACHE);
        QueryResponse response = context.getChannel().onQuery(null, query);
        List result = response.firstList();
        if(result == null || result.size() == 0) {
            return null;
        }
       
        DataRow snapshot = (DataRow) result.get(0);
View Full Code Here

            return object;
        }

        // skip context cache lookup, go directly to its channel
        Query query = new ObjectIdQuery((ObjectId) nodeId);
        QueryResponse response = context.getChannel().onQuery(context, query);
        List objects = response.firstList();

        if (objects.size() == 0) {
            throw new CayenneRuntimeException("No object for ID exists: " + nodeId);
        }
        else if (objects.size() > 1) {
View Full Code Here

        return contextCallbacksEnabled ? callbackRegistry.isEmpty(LifecycleListener.PRE_REMOVE)
                && callbackRegistry.isEmpty(LifecycleListener.PRE_PERSIST) : true;
    }

    public QueryResponse onQuery(ObjectContext originatingContext, Query query) {
        QueryResponse response = channel.onQuery(originatingContext, query);

        // TODO: andrus, 9/21/2006 - this method incorrectly calls "postLoad" when query
        // refresh flag is set to false and object is already there.

        if (!callbackRegistry.isEmpty(LifecycleListener.POST_LOAD)) {

            List list = response.firstList();
            if (list != null
                    && !list.isEmpty()
                    && !(query.getMetaData(channel.getEntityResolver()))
                            .isFetchingDataRows()) {
                callbackRegistry.performCallbacks(LifecycleListener.POST_LOAD, list);
View Full Code Here

     * @throws TransactionRequiredException if there is no transaction
     */
    public int executeUpdate() {
        // TODO: check transaction

        QueryResponse response = context.performGenericQuery(queryWithParameters());
        int[] res = response.firstUpdateCount();

        if (res == null) {
            return -1;
        }

View Full Code Here

                    ObjectContext originatingContext,
                    Query query,
                    DataChannelFilterChain filterChain) {

                results.add("f1start");
                QueryResponse response = filterChain.onQuery(originatingContext, query);
                results.add("f1end");
                return response;
            }
        };

        DataChannelFilter f2 = new MockDataChannelFilter() {

            @Override
            public QueryResponse onQuery(
                    ObjectContext originatingContext,
                    Query query,
                    DataChannelFilterChain filterChain) {

                results.add("f2start");
                QueryResponse response = filterChain.onQuery(originatingContext, query);
                results.add("f2end");
                return response;
            }
        };

        domain.filters.add(f1);
        domain.filters.add(f2);

        SelectQuery query = new SelectQuery(Artist.class);
        QueryResponse response = domain.onQuery(context, query);
        assertNotNull(response);
        assertEquals(4, results.size());
        assertEquals("f2start", results.get(0));
        assertEquals("f1start", results.get(1));
        assertEquals("f1end", results.get(2));
View Full Code Here

    public void testOnQuery_Blocking() {

        DataDomain domain = runtime.getDataDomain();

        final QueryResponse r1 = new ListResponse();
        final QueryResponse r2 = new ListResponse();

        DataChannelFilter f1 = new MockDataChannelFilter() {

            @Override
            public QueryResponse onQuery(
                    ObjectContext originatingContext,
                    Query query,
                    DataChannelFilterChain filterChain) {

                return r1;
            }
        };

        DataChannelFilter f2 = new MockDataChannelFilter() {

            @Override
            public QueryResponse onQuery(
                    ObjectContext originatingContext,
                    Query query,
                    DataChannelFilterChain filterChain) {

                return r2;
            }
        };

        domain.filters.add(f1);
        domain.filters.add(f2);

        SelectQuery query = new SelectQuery(Artist.class);
        QueryResponse response = domain.onQuery(context, query);
        assertSame(r2, response);
    }
View Full Code Here

        assertEquals(new Long(2l), notUpdated);

        String ejbql = "UPDATE Painting AS p SET p.paintingTitle = 'XX' WHERE p.paintingTitle = 'P1'";
        EJBQLQuery query = new EJBQLQuery(ejbql);

        QueryResponse result = context.performGenericQuery(query);

        int[] count = result.firstUpdateCount();
        assertNotNull(count);
        assertEquals(1, count.length);
        assertEquals(1, count[0]);

        notUpdated = Cayenne.objectForQuery(context, check);
View Full Code Here

TOP

Related Classes of org.apache.cayenne.QueryResponse

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.