So I was trying to write a single query that can populate a Node with all 
of its related nodes, via 4 different relationship types into one domain 
object with Collections for each relationship.

Here is the Cypher query that I have written

  @Query("""START player=node({0})
            MATCH (player)<-[:playerInvited*0..1]-(invitedBy),
                  (player)<-[:playerDeclined*0..1]-(declinedBy),
                  (player)<-[:playerMuted*0..1]-(mutedBy),
                  (player)<-[:playerActive*0..1]-(friends)
           RETURN player""")
  public PlayerPresenceGraph getPlayerWithAllFriends(String playerID)

And I get the following error

2014-02-04 14:35:09,451 ERROR 
com.hdpoker.data.actionhandlers.AbstractHandler  - Unable to Handler 
request through Handler
org.springframework.data.redis.RedisSystemException: Unknown jedis 
exception; nested exception is org.neo4j.rest.graphdb.RestResultException: 
Expected a propertycontainer or number here, but got: 
1eb7f292-b67d-46e6-a38f-16f194bb61c8 at
BadInputException
  
 
org.neo4j.server.rest.repr.RepresentationExceptionHandlingIterable.exceptionOnHasNext(RepresentationExceptionHandlingIterable.java:50)
  
 
org.neo4j.helpers.collection.ExceptionHandlingIterable$1.hasNext(ExceptionHandlingIterable.java:60)
  
 org.neo4j.helpers.collection.IteratorWrapper.hasNext(IteratorWrapper.java:42)
  
 
org.neo4j.server.rest.repr.ListRepresentation.serialize(ListRepresentation.java:58)
   org.neo4j.server.rest.repr.Serializer.serialize(Serializer.java:75)

I know I have something wrong in the query, but can't figure out what it 
is. I haven't been able to find an example that tries to retrieve 4 
different collections. In other code, I tried

PlayerPresenceGraph playerPresenceGraph = 
playerPresenceGraphRepository.findByPlayerID(playerID)
    if (playerPresenceGraph) {
      neo4jTemplate.fetch(playerPresenceGraph.getInvited())
      neo4jTemplate.fetch(playerPresenceGraph.getDeclined())
      neo4jTemplate.fetch(playerPresenceGraph.getMuted())
      neo4jTemplate.fetch(playerPresenceGraph.getInviteToTable())

And that works, but we have noticed that Neo4J ends up taking 200% CPU 
usage for the query and it is slow. We need this really fast, one player 
and all their invitedFriends, declinedFriends, muted players and actual 
Friends in one query that is really fast.

Thanks

Mark

-- 
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/groups/opt_out.

Reply via email to