Как передать значение с помощью аннотации @Param в метод - PullRequest
0 голосов
/ 21 апреля 2020

Я решил переместить все свои запросы jpql в другой класс, например

public class QueryUtils {

public static final String  FIND_All_CLUBS= "select c from Club c order by c.club_name";

}

В репозитории у меня есть это:

@Query(value = QueryUtils.FIND_All_CLUBS)
Iterable<Club> findAllAndAndOOrderByClub_name();

И он работает нормально. Но я застрял с этой вещью: что, если у меня есть параметры в моем jpql, например

@Query(value = "select c from Comment c where c.post.post_id = :id order by c.replyTo.comment_id nulls last")
Iterable<Comment> findAllCommentsOfPost(@Param("id") long id);

Я пытаюсь написать это:

public static String getFIND_ALL_COMMENTS_OF_POST(String id){
    return new StringBuilder("select c from Comment c where c.post.post_id = ").append(id).append(" order by c.replyTo.comment_id nulls last").toString();
}

Но как передать параметр из хранилище для этого метода, этот код (который я пробовал, недействителен):

@Query(QueryUtils.getFIND_ALL_COMMENTS_OF_POST(id))
Iterable<Comment> findAllCommentsOfPost(@Param("id") long id);

Просьба помочь мне !!

1 Ответ

0 голосов
/ 22 апреля 2020

Альтернатива @Param, попробуйте этот

@Query(value = "select c from Comment c where c.post.post_id = ?1 order by c.replyTo.comment_id nulls last")
Iterable<Comment> findAllCommentsOfPost(long id);
...