MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Spring Boot com MongoTemplate


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);
    }
}