1

次のようなリポジトリがあります。ここでは、パラメーター付きの注釈付きクエリを使用しています。ただし、置換に関しては、例外で失敗します。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);
}

また、名前付きパラメーター ( with @Param) を使用してみましnodeIdsたが、違いはありませんでした。

ここで何が欠けていますか、またはQuery.paramsメソッドパラメーターと混在させることはできませんか?

spring-data-neo4j バージョンを使用しています2.3.0.M1

前もって感謝します

4

1 に答える 1

4

リファレンス ドキュメントで読んだことによると、@Query の param 属性は、エンティティのフィールドに @Query で注釈が付けられている場合にのみ使用されるようです。

編集:実際に、この動作を文書化する問題を見つけました。SDN ドキュメントのどこかに記載する必要があると思います: https://jira.springsource.org/browse/DATAGRAPH-163

TLDR: Param 属性がリポジトリで機能しない (まだ)

于 2013-09-05T07:59:24.800 に答える