Для дальнейшего объяснения, вы даже можете использовать оба одновременно.
MongoRepository
- это просто уровень абстракции, как MongoTemplate
, но с более простым интерфейсом.
Если вы обнаружили, что выполнение какой-либо операции с помощью Spring слишком сложно query-creation, и почему-то не хочет использовать _ 3_ (например, вам нужна подсказка типа IDE при построении запросов), вы можете расширить MongoRepository
и использовать MongoTemplate
в качестве механизм запросов.
Сначала мы расширяем наш репозиторий с помощью нашего пользовательского интерфейса.
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
Затем объявите интерфейс.
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
А затем реализовать наш собственный репозиторий. Мы можем автоматически подключить MongoTemplate
сюда и использовать его для запроса базы данных.
public class CustomArticleRepositoryImpl implements CustomArticleRepository {
@Autowired
MongoTemplate mongoTemplate;
@Override
public List<Article> getArticleFilteredByPage(int page, int num) {
return mongoTemplate.findAll(Article.class)
.skip(page * num)
.take(num);
}
}
Наконец, мы используем ArticleRepository
.
@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}
person
Adhika Setya Pramudita
schedule
26.06.2019