Para mais explicações, você pode até usar os dois ao mesmo tempo.
MongoRepository
é apenas uma camada de abstração, como MongoTemplate
, mas com interface mais simples. Se você achou que fazer algum tipo de operação é muito complicado com Spring criação de consulta , e de alguma forma não quer usar
@Query
(por exemplo, você deseja uma dica de tipo IDE ao construir consultas), você pode estender o MongoRepository
e use MongoTemplate
como o mecanismo de consulta. Primeiro, estendemos nosso repositório com nossa interface personalizada.
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
Em seguida, declare a interface.
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
E então implemente nosso repositório personalizado. Podemos conectar automaticamente o
MongoTemplate
aqui e use-o para consultar o banco de dados. 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);
}
}
Por último, usamos o
ArticleRepository
. @Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}