Neo4j液化图和带有APOC触发器的变更集

Neo4j液化图和带有APOC触发器的变更集,neo4j,cypher,neo4j-apoc,liquigraph,Neo4j,Cypher,Neo4j Apoc,Liquigraph,我想使用Liquigraph变更集安装以下触发器: <changeset id="create_decision_characteristic_value_relationship_trigger"> <query>CALL apoc.trigger.add('HAS_VALUE_ON_ADD_TO_INDEX', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->

我想使用Liquigraph变更集安装以下触发器:

<changeset id="create_decision_characteristic_value_relationship_trigger">
    <query>CALL apoc.trigger.add('HAS_VALUE_ON_ADD_TO_INDEX', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)', {phase:'after'});</query>
    <query>CALL apoc.trigger.add('HAS_VALUE_ON_REMOVE_FROM_INDEX', "UNWIND {deletedRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(Characteristic) CALL apoc.index.removeRelationshipByName('HAS_VALUE_ON', r) RETURN count(*)", {phase:'after'});</query>
</changeset>
但它仍然不能解决同样的问题

请注意,第一个触发器:

 <query>CALL apoc.trigger.add('HAS_VALUE_ON_ADD_TO_INDEX', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)', {phase:'after'});</query>
调用apoc.trigger.add('HAS_VALUE_ON_add_TO_INDEX','UNWIND{createdRelationships}为r MATCH(d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic)调用apoc.INDEX.addRelationship(r,keys(r))返回计数(*),{phase:'after'});

即使没有
CDATA
部分,也可以正常工作,因此Liquigraph似乎不喜欢第二个触发器声明

必须将查询包装在
]>
中,否则关系箭头将由XML解析器解释


更新:HTTP的底层JDBC驱动程序有一个关于查询清理的错误,现在已合并:。如果您想在下一版本之前测试修复程序,可以先构建JDBC HTTP驱动程序的3.3分支,然后构建Liquigraph的主分支。

请查看我更新的问题。我尝试了CDATA部分,但仍然无法解决相同的问题。看起来Liquigraph不喜欢第二个触发器声明。嗨@alexanoid,你能尝试修复吗?您可以在本地构建并尝试!嗨,@Rolf很不幸,我还在等待neo4jdbc的发布,以验证修复。你知道什么时候可以在Maven central发布吗?你用的是什么版本的APOC?我用的是APOC-3.3.0.2-all.jar你用的是JDBC驱动程序@version 3.3.0和Neo4j@version 3.3.3吗?
<query>CALL apoc.trigger.add('HAS_VALUE_ON_REMOVE_FROM_INDEX', "UNWIND {deletedRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(Characteristic) CALL apoc.index.removeRelationshipByName('HAS_VALUE_ON', r) RETURN count(*)", {phase:'after'});</query>
<query><![CDATA[CALL apoc.trigger.add('RELATIONSHIP_INDEX_ADD_HAS_VALUE_ON', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)', {phase:'after'});]]></query>
<query><![CDATA[CALL apoc.trigger.add('RELATIONSHIP_INDEX_REMOVE_HAS_VALUE_ON', "UNWIND {deletedRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) CALL apoc.index.removeRelationshipByName('HAS_VALUE_ON', r) RETURN count(*)", {phase:'after'});]]></query>
 <query>CALL apoc.trigger.add('HAS_VALUE_ON_ADD_TO_INDEX', 'UNWIND {createdRelationships} AS r MATCH (d:Decision)-[r:HAS_VALUE_ON]->(ch:Characteristic) CALL apoc.index.addRelationship(r, keys(r)) RETURN count(*)', {phase:'after'});</query>