2016-12-07 3 views
1

В старой версии SDN3 я могу использовать findById (List id), но после обновления до SDN4 я не могу снова использовать эту функцию, всегда возвращаю пустой.SDN4 - Не удается найтиById со списком id

Это мой образец класс:

@NodeEntity 
public class Right{ 

    @GraphId 
    Long graphId; 

    String id; //random generated UUID 

    String name; 

    //Properties & Constructor 
} 

И тогда я RightRepository, которые содержат этот код:

public interface RightRepository extends GraphRepository<Right> { 
    List<Right> findById(List<String> id); 
} 

Вместо использования Loop, чтобы получить за ID, нужно вызвать хранилище только один раз , и получить Список (без использования findAll())

Возможно, SDN4 не поддерживает его? Есть ли другое решение?

+0

Не могли бы вы попробовать аннотирование метод с пользовательским запросом. Пример '@Query (" MATCH (n: справа) WHERE n.id IN {rightIds} RETURN n ") Список findRightById (@Param (" rightIds ") Список rightIds);' – troig

+0

Да, его работа с пользовательским запросом , Но перед обновлением до SDN4 я могу использовать этот метод с SDN3. –

+1

Я думаю, что это единственный способ сделать это на данный момент. Я буду ждать других ответов – troig

ответ

1

Как я могу опубликовать в комментарии и после дальнейшего расследования, я считаю, что пользовательский запрос является единственным способом выполнить ваше требование на данный момент. Это работает:

@Query("MATCH (n:Right) WHERE n.id IN {rightIds} RETURN n") 
List<Right> findRightById(@Param("rightIds") List<String> rightIds); 

Надеется, что это помогает

+1

На данный момент, я думаю, что этот ответ - единственный способ решить мой вопрос. В любом случае спасибо @troig –

+0

В ожидании нового обновления нет другого ответа, кроме этого. hahha. спасибо –

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

  • Нет связанных вопросов^_^