2013-09-04 2 views
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); 
} 

я уже пробовал использовать именованный параметр (с @Param) для nodeIds, который не сделал никакой разницы.

Что мне здесь не хватает, или я не могу смешивать Query.params с параметрами метода?

Я использую пружинные данные Neo4j версии 2.3.0.M1

Спасибо, заранее

ответ

4

Из того, что я прочитал в справочной документации, кажется, что атрибут пар из @Query используется только когда поле объектов аннотируются с помощью @Query.

EDIT: Я действительно нашел проблемы, которые документируют это поведение. Я до сих пор думаю, что это должно быть упомянуто somewehere в документации SDN: https://jira.springsource.org/browse/DATAGRAPH-163

TLDR: Param атрибут не работает в хранилищах (пока)

+1

я второй, что следует отметить, где-то в документации SDN, потому что это не очевидно, что 'params' не влияет на' @ Query', когда используется в репозиториях – Prjio

Смежные вопросы