我有一个类似于下面的存储库,我正在使用带参数的带注释的查询。但是,当涉及到替换时,它会失败,但例外情况为:org.neo4j.cypher.ParameterNotFoundException: Expected a parameter named custType1
public class CustTypes {
public static final String TYPE1 = "foo";
public static final String TYPE2 = "bar";
}
public interface CustomQueryRepository extends GraphRepository<CustomEntity> {
@Query(
value =
" START c=node({0}) "
+ " WHERE c.type! = {custType1} "
+ " OR c.type! = {custType2} "
+ "RETURN DISTINCT c, c.type AS compType",
params = {
"custType1", CustTypes.TYPE1,
"custType2", CustTypes.TYPE2
})
Iterable<CustomMapResult> getTypes(List<Long> nodeIds);
}
我也尝试使用@Param
的命名参数(nodeIds
),这没有任何区别。
我在这里缺少什么,或者我不能将Query.params
与方法参数混合在一起?
我正在使用spring-data-neo4j版本2.3.0.M1
先谢谢
答案 0 :(得分:4)
从我在参考文档中读到的内容来看,@Query的param属性似乎仅在使用@Query注释实体字段时使用。
编辑: 我实际上发现了一个记录这种行为的问题。我仍然认为应该在SDN文档中提到它: https://jira.springsource.org/browse/DATAGRAPH-163
TLDR:Param属性在存储库中尚未起作用(尚未)