MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Stivale primaverile con MongoTemplate

Per ulteriori spiegazioni, puoi anche utilizzare entrambi contemporaneamente.

MongoRepository è solo un livello di astrazione, come MongoTemplate , ma con un'interfaccia più semplice.

Se hai scoperto che eseguire un qualche tipo di operazione è troppo complicato con Spring creazione-query e in qualche modo non vuole usare @Query (ad esempio, vuoi un suggerimento sul tipo IDE quando costruisci le query), puoi estendere il MongoRepository e usa MongoTemplate come meccanismo di query.

Per prima cosa estendiamo il nostro repository con la nostra interfaccia personalizzata.

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

Quindi dichiara l'interfaccia.

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

E poi implementa il nostro repository personalizzato. Possiamo autowire il MongoTemplate qui e usalo per interrogare il database.

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

Infine, utilizziamo il ArticleRepository .

@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

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