Пользовательский запрос JPQL для извлечения данных с помощью ExampleMatcher & Pageable - PullRequest
0 голосов
/ 05 марта 2019

Как использовать пользовательский запрос JPQL с помощью ExampleMatcher?

Я пытаюсь извлечь дочерний элемент из родительского размера.Так как мне не разрешено добавлять другой метод на дочерней стороне.

Мне нужно фильтровать и разбивать на страницы для показа дочернего элемента, потому что дочерний элемент содержит очень много данных строки.

Это мой репозиторий.

@Repository
public interface ParentRepository extends JpaRepository<Parent, String> {

    @Query(value = "SELECT c FROM Child c where c.parent.id =:id")  
    public List<Child> findChildById(String id, Example example, Pageable pageable);

}

Примечание: этот запрос работает нормально, если без примера и может быть отображен в виде параметров.

Этот метод выдает ошибку:

    Error creating bean with name 'parentRepository': 
        Invocation of init method failed; nested exception is java.lang.IllegalStateException: 
        Using named parameters for method public abstract java.util.List com.example.test.ParentRepository
.findChildById(java.lang.String,org.hibernate.criterion.Example,org.springframework.data.domain.Pageable) 
        but parameter 'Optional[example]' not found in annotated query 
        'SELECT c FROM Child c where c.parent.id =:id'!

1 Ответ

0 голосов
/ 05 марта 2019

Параметры, которые вы передаете методу, помеченному @Query, должны использоваться в запросе, в вашем примере это должно выглядеть примерно так:

@Query(value = "SELECT c FROM Child c where c.parent.id =:id")  
public List<Child> findChildById(@Param("id") String id);
...