我是 Spring Boot 和 MongoDb 的新手。 使用 Mongo Repositories 和 Spring Boot 尝试一些示例。 但是在浏览了一些文档之后发现 Mongo Template 将是一个更好的选择。无法使用 Mongo 模板示例获得正确的 Spring Boot。
谁能帮我举个例子。
我们是否需要创建一个用户定义的 Repositories 接口(interface)并扩展 Repositories 或 CRUD Repository,同时尝试使用 Mongo 模板?
最佳答案
为了进一步说明,您甚至可以同时使用两者。
MongoRepository
只是一个抽象层,与 MongoTemplate
类似,但接口(interface)更简单。
如果您发现使用 Spring 执行某种操作过于复杂 query-creation ,并且不知何故不想使用 @Query
(例如,在构造查询时需要 IDE 类型提示),您可以扩展 MongoRepository
并使用 MongoTemplate
作为查询机制。
首先,我们使用自定义界面扩展我们的存储库。
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
然后声明接口(interface)。
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
然后实现我们的自定义存储库。我们可以在此处 Autowiring 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);
}
}
关于java - 带有 MongoTemplate 的 Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288258/