Spring Mongo Paging с сортировкой с помощью MongoRepository - PullRequest
0 голосов
/ 06 июня 2018

Структура документа - message {obj_id, post_id, message_time, message_text} и @key is obj_id .

Постановка задачи: Я просто хочу, чтобы получить вседанные содержат post_id: ' что угодно ' с сортировками на основе message_time и каждый раз требуют настраиваемой подкачки в результате.Сейчас я реализую код, упомянутый ниже, по ссылке : https://stackoverflow.com/a/10077534/9901300. Но не могу найти, где мне каждый раз указывать различные post_id для поиска результата.

Пожалуйста, посмотрите ниже код.

public interface MessageMongoRepository extends 
MongoRepository<Message, String> {

@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostIdSorted(Pageable pageable);
}

Услуга:

@Override
public List<Message> getByPostId(String PostId, int page, int size) {
    List<Message> messages = new ArrayList<>();
    @SuppressWarnings("deprecation")
    PageRequest request = new PageRequest(page, size, new Sort(Sort.Direction.DESC, "message_time"));
    messages = messageRepository.findByPostIdSorted(request).getContent();
    return messages;
}

1 Ответ

0 голосов
/ 27 июня 2018

Я думаю, это то, что вы ищете:

Репозиторий:

@Query("{ 'post_id' : ?0 }")
Page<Message> findByPostId(String postId, Pageable pageable);

Сервис

messages = messageRepository.findByPostId(postId, request).getContent();

Вы можете просто передать postId методу, определенному в хранилище

...