Spring boot Don';我不知道如何将其视为谓词

Spring boot Don';我不知道如何将其视为谓词,spring-boot,neo4j,spring-data,cypher,spring-data-neo4j,Spring Boot,Neo4j,Spring Data,Cypher,Spring Data Neo4j,我试图在我的存储库中运行自定义查询,但得到一个InvalidDataAccessResourceUsageException。“不知道如何将其视为谓词字符串(“n.id='1234'”) public void myMethod(){ queryUsingCustomFilters(“n.id='1234'”); } 公共接口MyRepository()扩展了Neo4jRepository{ @查询(“匹配(n)其中{filter}返回n”) 列表查询自定义筛选器(@Param(“筛选器”)字符

我试图在我的存储库中运行自定义查询,但得到一个InvalidDataAccessResourceUsageException。“不知道如何将其视为谓词字符串(“n.id='1234'”)

public void myMethod(){
queryUsingCustomFilters(“n.id='1234'”);
}
公共接口MyRepository()扩展了Neo4jRepository{
@查询(“匹配(n)其中{filter}返回n”)
列表查询自定义筛选器(@Param(“筛选器”)字符串筛选器);
}

我现在有一个简单的例子,但是我将来传递的字符串可能会稍微复杂一些,比如“n.id='1234'和(n.name='one name'或n.name='other name')”

我不相信您可以将整个子句/谓词/查询作为
@Param
传递。 如果要在运行时生成查询,可能需要考虑使用较低级别的过滤器组合查询(请参阅)


因此,在您上面描述的情况下,您只需根据需要添加
过滤器
并将它们链接在一起,就可以构建
WHERE
子句

我认为您无法将整个子句/谓词/查询作为
@Param
传递。 如果要在运行时生成查询,可能需要考虑使用较低级别的过滤器组合查询(请参阅)


因此,在您上面描述的情况下,您只需根据需要添加
Filter
s并将它们链接在一起,以构建您的
WHERE
子句

如何在我的存储库中使用这些过滤器?过滤器是OGM概念,因此您必须在您的服务方法中为此编写代码。我知道了,我想我知道了,因此,我在使用这个示例的同时,还使用了您发送给我的neo4j链接来尝试实现这一点,但是该示例中使用的会话对象与neo4j网站中使用的会话对象不同,我正在尝试找出neo网站中的会话是如何初始化的,顺便说一句,谢谢您的帮助!对不起,应该说得更清楚些。我提到的会话是Neo4j OGM会话(不是Bolt会话)。下面是一些测试,它们应该演示如何使用它们:这种方法似乎非常复杂,您如何确定如何初始化会话工厂?如何在我的存储库中使用这些过滤器?过滤器是OGM概念,因此您必须在您的服务方法中为此编写代码。我明白了,我想我知道了,因此,我在使用这个示例的同时,还使用了您发送给我的neo4j链接来尝试实现这一点,但是该示例中使用的会话对象与neo4j网站中使用的会话对象不同,我正在尝试找出neo网站中的会话是如何初始化的,顺便说一句,谢谢您的帮助!对不起,应该说得更清楚些。我提到的会话是Neo4j OGM会话(不是Bolt会话)。下面是一些测试,它们应该演示如何使用它们:这种方法似乎非常复杂,您如何确定如何初始化会话工厂?
public void myMethod() {
    myRepository.queryUsingCustomFilters("n.id = '1234'");
}

public interface MyRepository() extends Neo4jRepository<MyObject, String> {
    @Query("MATCH (n) WHERE {filter} RETURN n")
    List<MyObject> queryUsingCustomFilters(@Param("filter") String filter);
}