अधिक स्पष्टीकरण के लिए, आप एक ही समय में दोनों का उपयोग भी कर सकते हैं।
MongoRepository
एक अमूर्त परत है, जैसे MongoTemplate
, लेकिन सरल इंटरफ़ेस के साथ।
यदि आप पाते हैं कि स्प्रिंग के साथ किसी प्रकार का ऑपरेशन करना बहुत जटिल है query-creation
, और किसी तरह @Query
(उदाहरण के लिए, आप क्वेरी बनाते समय आईडीई प्रकार का संकेत चाहते हैं), आप MongoRepository
का विस्तार कर सकते हैं और MongoTemplate
. का उपयोग करें क्वेरी तंत्र के रूप में।
सबसे पहले हम अपने कस्टम इंटरफ़ेस के साथ अपने भंडार का विस्तार करते हैं।
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
फिर इंटरफ़ेस घोषित करें।
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
और फिर हमारे कस्टम रिपॉजिटरी को लागू करें। हम MongoTemplate
. को ऑटोवायर कर सकते हैं यहाँ और डेटाबेस को क्वेरी करने के लिए इसका उपयोग करें।
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);
}
}
अंत में, हम ArticleRepository
. का उपयोग करते हैं ।
@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}