Hi, There are a number of concepts here that I'd advise understanding in some more depth-
1. The ExecutionResult api and structure of Cypher statements (see that you return a person but expect to read a column called name) 2. Labels: Your query includes a city label but your code does not create any Would really recommend you follow Michael's advice here http://stackoverflow.com/a/22392141/232671 Regards Luanne On Thu, Mar 13, 2014 at 7:14 PM, Saugata Bose <[email protected]> wrote: > 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";public static >> GraphDatabaseService graphDb = null; >> >> private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { >> // TODO add your handling code here: >> try ( Transaction tx = graphDb.beginTx(); ){ >> person= graphDb.createNode(); >> person.setProperty("name", jTextField1.getText()); >> //graphDb.index().forNodes("name").add(name, "name", >> jTextField1.getText()); >> person.setProperty("password", jPasswordField1.getPassword()); >> graphDb.index().forNodes("person").add(person, >> "name",jTextField1.getText()); >> >> //password= graphDb.createNode(); >> //password.setProperty("password", >> jPasswordField1.getPassword()); >> //graphDb.index().forNodes("password").add(password, "password", >> jPasswordField1.getPassword()); >> >> city= graphDb.createNode(); >> city.setProperty("city", jTextField2.getText()); >> graphDb.index().forNodes("city").add(city, "city", >> jTextField2.getText()); >> //graphDb.index().forNodes("name").add(name, "password", >> jPasswordField1.getPassword()); >> //graphDb.index().forNodes("name").add(name, "city", >> jTextField2.getText()); >> >> person.createRelationshipTo(city, RelTypes.LIVES_IN); >> tx.success(); >> >> } >> >> >> private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { >> // TODO add your handling code here: >> ExecutionEngine engine = new ExecutionEngine( graphDb ); >> ExecutionResult result; >> >> try ( Transaction ignored = graphDb.beginTx() ) >> { >> >> Map<String,Object> params=new HashMap<String,Object>(); >> params.put("city",jTextField2.getText()); >> result=engine.execute("MATCH (city: city {city: { city } } >> )<-[:LIVES_IN]-(person) RETURN person",params); >> >> Iterator<Node> n_column = result.columnAs( "n" ); >> for ( Node node : IteratorUtil.asIterable( n_column ) ) >> { >> >> nodeResulta=node.getProperty( "name" )+"\n"; >> >> } >> // END SNIPPET: items >> } >> //for(String s:nodeResult1 ) >> >> jTextArea1.setText(nodeResulta); >> } >> >> > 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? > > 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.
