Please take my answer on SO into consideration before moving on: Try to stick to Cypher that makes it much easier.
Do the online tutorial (http://neo4j.org/learn/online_course) to get you up to speed with Cypher. Also use the Cypher Reference Card. (http://neo4j.org/resources/cypher) Prototype your model in the Neo4j browser until all your create and query statements work. Then use those cypher statements with parameter placeholders, e.g. {name} to be fed from your program via executionEngine.execute(query,params). Right now you have too many moving parts and explaining one part won't help you to learn the concepts. Am 13.03.2014 um 14:44 schrieb Saugata Bose <[email protected]>: > I have 2 nodes: person{name, password} and city{name}. and a relationship > between these two is (person) [:LIVES_IN]->(city). I am trying to generate a > query to find out who are those people living in city X(where X will be > coming from a text box). > > I am trying to construct this query following a suggestion given from > stackoverflow.com: > > import java.util.ArrayList; > import java.util.HashMap; > import org.neo4j.graphdb.GraphDatabaseService; > import org.neo4j.graphdb.Node; > import org.neo4j.graphdb.RelationshipType; > import org.neo4j.graphdb.Transaction; > import org.neo4j.graphdb.factory.GraphDatabaseFactory; > import org.neo4j.helpers.collection.IteratorUtil; > import java.util.Iterator; > import java.util.Map; > import org.neo4j.cypher.javacompat.ExecutionEngine; > import org.neo4j.cypher.javacompat.ExecutionResult; > > > > Node person; > Node city; > String nodeResulta; > > > > public static final String DB_PATH="D://db"; > > private GraphDatabaseService graphDb = new > GraphDatabaseFactory().newEmbeddedGraphDatabase(DB_PATH); > private ExecutionEngine engine = new ExecutionEngine( graphDb ); > private void addUserAndCity() { Map<String,Object> params=new HashMap<String,Object>(); params.put("name", nameField.getText()); params.put("city", cityField.getText()); > engine.query("MERGE (p:Person {name:{name}}) MERGE (c:City > {city:{city}}) MERGE (p)-[:LIVES_IN]->(c)",params); > } > > private List<String> findUsersInCity(java.awt.event.ActionEvent evt) { > Map<String,Object> params=new HashMap<String,Object>(); > params.put("city",cityField.getText()); > ExecutionResult result=engine.execute("MATCH (c:City {city: { city } > } )<-[:LIVES_IN]-(p) RETURN p.name as name",params); List<String> names = new ArrayList(); for (Map<String,Object> row : result) { names.add(row.get("name")); } > return names > } > > But this query does not give any result as well as any exception. > > Is my query formation right? Can any one tell me how can I resolve this? You had no Label on creation, and if so. Labels and property-names are case sensitive. > > Thank You > > > -- > 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.
