詳細については、両方を同時に使用することもできます。
MongoRepository
MongoTemplate
のような単なる抽象化レイヤーです 、ただし、よりシンプルなインターフェイスを使用します。
Spring query-creation
、そしてどういうわけか @Query
(たとえば、クエリを作成するときにIDEタイプのヒントが必要な場合)、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);
}
}