sql >> Base de Datos >  >> NoSQL >> MongoDB

Bota de primavera con MongoTemplate

Para una explicación más detallada, incluso puede usar ambos al mismo tiempo.

MongoRepository es solo una capa de abstracción, como MongoTemplate , pero con una interfaz más sencilla.

Si encuentra que hacer algún tipo de operación es demasiado complicado con Spring query-creation , y de alguna manera no quiere usar @Query (por ejemplo, desea una sugerencia de tipo IDE al construir consultas), puede extender el MongoRepository y usa MongoTemplate como mecanismo de consulta.

Primero ampliamos nuestro repositorio con nuestra interfaz personalizada.

@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}

Luego declare la interfaz.

public interface CustomArticleRepository {
    List<Article> getArticleFilteredByPage(int page, int num);
}

Y luego implementar nuestro repositorio personalizado. Podemos autoconectar el MongoTemplate aquí y utilícelo para consultar la base de datos.

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 el ArticleRepository .

@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

    public List<Article> getArticleByPage() {
        return articleRepository.getArticleFilteredByPage(1, 10);
    }
}