Already answered on Stackoverflow by Luanne:

http://stackoverflow.com/questions/26909367/neo4j-executionresult-extract-multiple-columns-since-javacolumnas-only-works-o

On Thu, Nov 13, 2014 at 12:24 PM, Patrick Boos <[email protected]>
wrote:

> So I tried to run the following cypher query with the ExecutionEngine:
>
> MATCH (n:Person{name:'Test'}) MATCH n-[r]->m RETURN n,r,m;
>>
>
> And then I wanted to get n, r and m out of it like this:
>
> Node node = IteratorUtil.single(result.javaColumnAs("n"));
>> Relationship relationship = IteratorUtil.single(result.javaColumnAs("r"));
>> Node otherNode = IteratorUtil.single(result.javaColumnAs("m"));
>
>
> Now this does not work. Only the first javaColumnAs returns the node,
> everything after does not return anything anymore.
> I found the reason here:
> https://groups.google.com/d/msg/neo4j/oUP_2b8mAlY/hkgJGoHc-20J
> Explanation: After doing javaColumnAs once, it consumes all the results
> from the cypher query because it is a lazy iterator.
>
> Another way to get all of them out is:
>
>> Node node = null;
>> Relationship relationship = null;
>> Node otherNode = null;
>>
>> for (Map<String, Object> row :
>> IteratorUtil.asIterable(result.javaIterator())) {
>>     for (Map.Entry<String, Object> column : row.entrySet()) {
>>
>>         switch (column.getKey()){
>>             case "n":
>>                 node = (Node) column.getValue();
>>                 break;
>>             case "r":
>>                 relationship = (Relationship) column.getValue();
>>                 break;
>>             case "m":
>>                 otherNode = (Node) column.getValue();
>>                 break;
>>         }
>>     }
>> }
>
>
> You might agree, that this does not look as sexy as the first version. But
> HOW can I make this nicer? I would love it to look kind of like the first
> code example. But that one does not work. Is there a solution similar to
> that one that does work as expected?
>
> Thank you very much for your help.
>
> Cheers,
> Patrick
>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to