java - 带有 MongoTemplate 的 Spring Boot

标签 java mongodb spring-boot mongotemplate mongorepository

我是 Spring Boot 和 MongoDb 的新手。 使用 Mongo Repositories 和 Spring Boot 尝试一些示例。 但是在浏览了一些文档之后发现 Mongo Template 将是一个更好的选择。无法使用 Mongo 模板示例获得正确的 Spring Boot。

  1. 谁能帮我举个例子。

  2. 我们是否需要创建一个用户定义的 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/

相关文章:

java - openejb 容器和 hibernate 的集成测试失败

java - 这种在 Java 中处理 IO 异常的模式是否正确?

python - pymongo update_one 语法错误

mysql - 在同一个 Rails 应用程序中同时使用 mongodb 和 mysql 是否有意义?

java - 使用 Java 驱动程序运行聚合 - MongoDB

jquery - Spring Boot Ajax post表单使用模型和thymeleaf提交

java - 如何完全填充 Ebean 实体?

java - 如何验证电话号码,使其不允许在 Java 中使用所有相同的数字,如 99999999999 或 11111111111

java - 'opentracing: spring: web: ignoreAutoConfiguredSkipPatterns: true' 是做什么的?

spring-boot - 单元测试 - Wiremock 验证失败并出现连接错误