使用NEO4J JDBC驱动程序在Java EE应用程序中执行多个语句时出错

使用NEO4J JDBC驱动程序在Java EE应用程序中执行多个语句时出错,java,jdbc,neo4j,cypher,Java,Jdbc,Neo4j,Cypher,堆栈:TOME/NEO4J 2.1.6社区版 我在做什么: 将JSON对象数组发布到Java JAX-RS Web服务 解析JSON并创建密码查询 尝试执行Cypher查询并以JSON格式返回结果 问题: 为了避免重复的节点创建,而不在应用程序代码中添加额外的开销,我使用了“CreateConstraint ON” 这就是我的密码器的样子 CREATE (EVENTS:Events {name:'nm_Events',value:'256',label:'lb_Events'} ) CR

堆栈:TOME/NEO4J 2.1.6社区版

我在做什么:

  • 将JSON对象数组发布到Java JAX-RS Web服务
  • 解析JSON并创建密码查询
  • 尝试执行Cypher查询并以JSON格式返回结果
问题:

为了避免重复的节点创建,而不在应用程序代码中添加额外的开销,我使用了“CreateConstraint ON”

这就是我的密码器的样子

CREATE (EVENTS:Events {name:'nm_Events',value:'256',label:'lb_Events'} )  
CREATE CONSTRAINT ON (EVENTS:Events) ASSERT EVENTS.name IS UNIQUE 
CREATE (LOGOUTS:Logouts {name:'nm_Logouts',value:'4',label:'lb_Logouts'} )  
CREATE CONSTRAINT ON (LOGOUTS:Logouts) ASSERT LOGOUTS.name IS UNIQUE 
CREATE (ACCIDENTAL_CLICKS:Accidental_Clicks {name:'nm_AccidentalClicks',value:'4',label:'lb_AccidentalClicks'} )  
CREATE CONSTRAINT ON (ACCIDENTAL_CLICKS:Accidental_Clicks) ASSERT ACCIDENTAL_CLICKS.name IS UNIQUE 
CREATE (INTERACTIONS:Interactions {name:'nm_Interactions',label:'lbl_interactions'} )  
CREATE CONSTRAINT ON (INTERACTIONS:Interactions) ASSERT INTERACTIONS.name IS UNIQUE 
CREATE (BUTTONS:Buttons {name:'nm_buttons',label:'lbl_buttons'} )  
CREATE CONSTRAINT ON (BUTTONS:Buttons) ASSERT BUTTONS.name IS UNIQUE 
CREATE (GROUP_BUTTON:Group_Button {name:'nm_GroupButton',value:'54',label:'lb_GroupButton'} )  
CREATE CONSTRAINT ON (GROUP_BUTTON:Group_Button) ASSERT GROUP_BUTTON.name IS UNIQUE 
CREATE (DELETE_BUTTON:Delete_Button {name:'nm_DeleteButton',value:'454',label:'lb_DeleteButton'} )  
CREATE CONSTRAINT ON (DELETE_BUTTON:Delete_Button) ASSERT DELETE_BUTTON.name IS UNIQUE 
CREATE (LOGIN_BUTTON:Login_Button {name:'nm_LoginButton',value:'256',label:'lb_LoginButton'} )  
CREATE CONSTRAINT ON (LOGIN_BUTTON:Login_Button) ASSERT LOGIN_BUTTON.name IS UNIQUE 
CREATE UNIQUE (LOGOUTS)-[:CHILD_OF]->(EVENTS) 
CREATE UNIQUE (ACCIDENTAL_CLICKS)-[:CHILD_OF]->(EVENTS) 
CREATE UNIQUE (DELETE_BUTTON)-[:CHILD_OF]->(GROUP_BUTTON) 
CREATE UNIQUE (GROUP_BUTTON)-[:CHILD_OF]->(BUTTONS) 
CREATE UNIQUE (LOGIN_BUTTON)-[:CHILD_OF]->(BUTTONS) 
CREATE UNIQUE (BUTTONS)-[:CHILD_OF]->(INTERACTIONS)
问题:

在NEO4J的控制台中执行时,它给出了一个错误

Invalid input 'N': expected 'p/P' (line 2, column 20) "CREATE CONSTRAINT ON (EVENTS:Events) ASSERT EVENTS.name IS UNIQUE " ^ 无效输入“N”:应为“p/p”(第2行第20列) “在(事件:事件)上创建约束断言事件。名称唯一” ^ 我了解到您不能在控制台中执行多行语句,但在使用JDBC代码时会遇到同样的问题


请提供帮助。

您不能混合使用DML和DDL,先创建约束/索引,后创建数据


在控制台中,每个语句和事务都是单独的。如果您想对JDBC执行相同的操作,请在循环中运行语句列表并单独执行它们。

谢谢。我将它们分开,并使用循环分别执行它们。