Spring data mongodb querydsl 环境配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring data mongodb querydsl 环境配置相关的知识,希望对你有一定的参考价值。

参考技术A 在 pom.xml 中进行配置。

dependencies 节点中:

plugins 节点中:

在实体类上添加注解 @Document ,运行 clean install 命令后,在 target/generated-sources/java 目录下将生成相应的查询类型。
如果你使用Eclipse,运行 mvn eclipse:eclipse 更新你的Eclipse项目,将 target/generated-sources/java 作为源目录。
现在,你就可以构建 JPA 查询实例和查询领域模型的实例了。

参考链接:
https://github.com/querydsl/querydsl/tree/master/querydsl-mongodb
https://www.baeldung.com/queries-in-spring-data-mongodb
http://books.aying.org/querydsl_zh_CN/Tutorials/Querying%20JPA.html

Spring数据mongodb存储库语法中的@Query注释

我使用的是spring-data-MongoDB。我想在我的存储库中使用@Query注释来使用id列表来查找数据模型对象列表,这些id是条件对象中的一个字段,它嵌套在数据模型对象中。

另外,希望只获取指定日期范围之间的文档以及限制返回指定限制的记录数。非常感谢任何帮助,谢谢。

@Repository
public interface DataModelRepository extends MongoRepository<DataModel, String>{

@Query("{'Criteria.Id' :{ $in: ?0},{'Criteria.DateTimeSearch' : { $lt: ?1, $gt: ?2 }},{$limit :?3}")
List<DataModel> findAllBySearchCriteriaId(List<Integer> ids, Date toDate, Date fromDate, int limit);

}

答案

您可以通过以下查询来实现此目的。

Page<DataModel> findByCriteria_IdInAndCriteria_DateTimeSearchBetween(
                                                         List<Integer> ids,  
                                                         Date fromDate,
                                                         Date toDate,  
                                                         Pageable pageable);

你不需要@Query

您可以使用类似的方法查询此方法

findByCriteria_IdInAndCriteria_DateTimeSearchBetween(...,
                                                           ...,
                                                           ..., 
                                                          new PageRequest(0, 3);

以上是关于Spring data mongodb querydsl 环境配置的主要内容,如果未能解决你的问题,请参考以下文章

使用Spring访问Mongodb的方法大全——Spring Data MongoDB

如何仅返回 Spring Data MongoDB 中查询的特定字段?

Spring数据mongodb存储库语法中的@Query注释

Spring Data MongoDB 五:进阶文档查询(分页Morphia)

Spring Data (数据)MongoDB

Java Spring Data Mongodb 1.10 排序忽略案例