Neo4j @Query注解参数注入问题
发布于 2 个月前 作者 greenhand0311 146 次浏览 来自 问答

我的代码:

@Query(value =
            "UNWIND :#{#froms} AS col " +
            "MERGE (c:Column {sourceName : col.sourceName, " +
                    "schemaName : col.schemaName, " +
                    "tableName : col.tableName, " +
                    "name : col.name }) " +
            "MERGE (t:Table {sourceName : :#{#to.sourceName}, " +
                    "schemaName : :#{#to.schemaName}, " +
                    "name : :#{#to.name} }) " +
                    "MERGE (c) -[r:BELONG]-> (t) ")
void mergeTableAndColumnRelations(@Param("froms") List<ColumnNode> froms, @Param("to") TableNode to);

我的错误: org.neo4j.driver.exceptions.ClientException:Cannot merge the following node because of null property value for ‘name’: (:Column {name: null})

我的问题: 入参中可以保证参数forms和to各项内容都不为空,同时froms和to可以绑定到对应的位置,但是貌似通过 UNWIND … AS col,MERGE中通过col取对应节点的参数时,无法获取到具体内容,而MERGE不允许null参数。 请问我该如何修改这段代码。

1 回复
UNWIND $__SpEL__0 AS col MERGE (c:Column {sourceName : col.sourceName, schemaName : col.schemaName, tableName : col.tableName, name : col.name }) MERGE (t:Table {sourceName : $__SpEL__1, schemaName : $__SpEL__2, name : $__SpEL__3 }) MERGE (c) -[r:BELONG]-> (t) 

这是DEBUG打印出的语句

回到顶部