java - spring-data-mongo @Query 在请求日期时不起作用

标签 java mongodb-query spring-data

我正在尝试以这种方式将 @Query 与 @MongoRepository 一起使用:

public interface VisasRepository extends MongoRepository<DomainVisa, Long> {

    @Query("{'codeReseau': '?0' , 'debutEffet': { $lte: '?3' } , 'garantie.codeProduit': '?1' , 'garantie.codeCouverture': '?2'}")
    List<DomainVisa> filterVisas(String codeReseau, String codeProduit, String codeCouverture, Date date);
}

当我调用 filterVisas 时,我收到此错误:

{
    "timestamp": 1584112318752,
    "status": 500,
    "error": "Internal Server Error",
    "message": "JSON reader was expecting ':' but found ' : '.",
    "path": "/visas"
}

仅供引用,当我删除 'debutEffet': { $lte: '?3' } 时,它工作正常。

最佳答案

您必须以 mongoDB 可以理解的格式设置日期格式:

你可以尝试:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
sdf.setTimeZone(TimeZone.getTimeZone("CET"));
String dateForMongo = sdf.format(debutEffet);

关于java - spring-data-mongo @Query 在请求日期时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60673126/

相关文章:

mongodb - MongoDB 如何在一个集合中排序他们的文档?

java - 使用Spring Data Gemfire时的@Region注释

java - ArrayList 作为全局变量

java - 无法识别 Android 字节数组

mongodb - 使用mongodb中的聚合获取包含多个字段最大值的对象

javascript - 将 $or 与 $elemMatch 和数组外部的条件一起使用

elasticsearch - index_not_found_exception,原因=没有这样的索引[Sugestao]]-如何将索引名称传递给reactElasticsearchOperations.search

java - 如何使用Java获取Mongodb中的特定值?

java - 为什么必须声明 "Integer int1"才能在 onCreate 和 onClick 方法中使用它?

java - 在java中查找给定IP地址或MAC地址的计算机名称、操作系统名称