MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Spring Boot mit MongoTemplate

Zur weiteren Erläuterung können Sie sogar beide gleichzeitig verwenden.

MongoRepository ist nur eine Abstraktionsschicht, wie MongoTemplate , aber mit einfacherer Schnittstelle.

Wenn Sie feststellen, dass eine bestimmte Operation mit Spring zu kompliziert ist Abfrageerstellung , und möchte @Query (z. B. möchten Sie beim Erstellen von Abfragen einen IDE-Typhinweis), können Sie das MongoRepository erweitern und verwenden Sie MongoTemplate als Abfragemechanismus.

Zuerst erweitern wir unser Repository mit unserer benutzerdefinierten Schnittstelle.

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

Deklarieren Sie dann die Schnittstelle.

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

Und implementieren Sie dann unser benutzerdefiniertes Repository. Wir können das MongoTemplate automatisch verdrahten hier und verwenden Sie es, um die Datenbank abzufragen.

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

Zuletzt verwenden wir das ArticleRepository .

@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

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