Nous créons une requête dans notre code en concaténant des chaînes dans la syntaxe de la requête comme pour créer un noeud toutes les propriétés de la requête sont ajoutées au moment de l'exécution.Cypher Query: - Autoriser apostrope (') contenant String dans la requête
The query is like this in the code where
nodeLabel =String
properties = JSONObject
String query = "CREATE (n:" + nodeLabel + "{" + properties
+ "}) RETURN n";
Erreur exécution créer requête(n:quiz{name:"1506077464525",createtime:1506077464525,title:"bernoulli's theory",duration:15,privacy:"follower",status:"draft"}) return n with params {}
parce que son ne permettant pas l'apostrophe (') dans la requête dans le code java.
La même requête est en cours d'exécution sur le navigateur neo4j mais la même requête ne s'exécute pas lors d'une tentative de code.
Comment résoudre ce problème et permettre le même.
Problème 2: - Même problème avec la mise à jour se produit la propriété du nœud.
J'ai essayé de coder mais cela m'a donné une erreur de sérialisation.
Connection connect = null;
int status = 00;
try {
connect = graphdbConnect();
StringBuilder sb = new StringBuilder();
for (Object key : propertiesMap.keySet()) {
if (sb.length() != 0) {
sb.append(",");
}
sb.append("n." + key + " = " + propertiesMap.get(key));
System.out.println(sb);
}
String query = "match (n{name:'" + nodeName + "'}) set {1}"
+ " return n.name";
query=query.toLowerCase();
try (PreparedStatement preparedStatement = connect.prepareStatement(query)){
preparedStatement.setObject(1,sb);
System.out.println(query+" ---> query");
preparedStatement.executeQuery();
status = ServerStatusReport.OK();
} catch (SQLException e) {
e.printStackTrace();
}
Error:-Error executing query match (n{name:'1506160405300'}) set n.{1} return n.name with params {1=n.title = Asjdkjsbd's} at org.neo4j.jdbc.Neo4jConnection.executeQuery(Neo4jConnection.java:372) at org.neo4j.jdbc.Neo4jPreparedStatement.executeQuery(Neo4jPreparedStatement.java:46) at com.edubot.server.Neo4jQueries.updateNodeProperty1(Neo4jQueries.java:622) at com.edubot.server.course.CourseNeo4jQueries.updateCourseTitle(CourseNeo4jQueries.java:490) at com.edubot.server.course.CourseServiceImpl.updateCourseTitle(CourseServiceImpl.java:1215) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:587) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:333) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:303) at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:373) at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at com.edubot.server.CORSFilter.doFilter(CORSFilter.java:51) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.handler.RequestLogHandler.handle(RequestLogHandler.java:95) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException: Could not serialize value 1 n.title = Asjdkjsbd's at org.neo4j.jdbc.rest.JsonUtils.serialize(JsonUtils.java:101) at org.neo4j.jdbc.rest.Statement.toJson(Statement.java:48) at org.neo4j.jdbc.rest.Statement.toJson(Statement.java:68) at org.neo4j.jdbc.rest.TransactionalQueryExecutor.post(TransactionalQueryExecutor.java:112) at org.neo4j.jdbc.rest.TransactionalQueryExecutor.commit(TransactionalQueryExecutor.java:135) at org.neo4j.jdbc.rest.TransactionalQueryExecutor.executeQueries(TransactionalQueryExecutor.java:198) at org.neo4j.jdbc.rest.TransactionalQueryExecutor.executeQuery(TransactionalQueryExecutor.java:208) at org.neo4j.jdbc.Neo4jConnection.executeQuery(Neo4jConnection.java:363) ... 38 more
Pouvez-vous inclure le message d'erreur réel? Et cette requête génère-t-elle l'impression du chiffre généré par votre code? J'ai fourni une réponse qui devrait attraper tous les problèmes dans Cypher Strings. – Tezra