Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用@Query注释使用字符串数组进行Spring数据查询_Java_Spring_Mongodb_Spring Mvc_Spring Data Mongodb - Fatal编程技术网

Java 使用@Query注释使用字符串数组进行Spring数据查询

Java 使用@Query注释使用字符串数组进行Spring数据查询,java,spring,mongodb,spring-mvc,spring-data-mongodb,Java,Spring,Mongodb,Spring Mvc,Spring Data Mongodb,我正在使用Spring存储库从MongoDB进行查询。我在我的repo中有一个类似下面的函数,它在DB中搜索键值对 @Query("{ '?0' : { $eq: ?1 } }") public Page<GsJsonStore> matchJson(String term, String value, Pageable pageable); 谢谢 那样不行。首先,所有MongoDB表达式参数都已经是“AND”条件。但您主要关注的是动态构建条件列表,对于这些条件,此类注释不受支持。

我正在使用Spring存储库从MongoDB进行查询。我在我的repo中有一个类似下面的函数,它在DB中搜索键值对

@Query("{ '?0' : { $eq: ?1 } }")
public Page<GsJsonStore> matchJson(String term, String value, Pageable pageable);

谢谢

那样不行。首先,所有MongoDB表达式参数都已经是“AND”条件。但您主要关注的是动态构建条件列表,对于这些条件,此类注释不受支持。你最好在没有注释的情况下构造查询对象。我是JPA新手,你能告诉我如何构造这种情况下的查询对象吗?非常感谢。我所说的是你想要的东西的诠释是不可能的,也没有任何真正的意义。这里更好的签名是只接受一个“map”,就像普通的MongoDB查询一样,即
{“field1”:“value1”,“field2”:“value2”}
(map/BasicDBObject的序列化输入)。这意味着MongoDB查询中的“这个条件和那个条件”。因此,注意“和”和“情商”都已经暗示了。使用映射,而不是键列表和值列表。并在本地使用它。不需要签名批注。
public Page<GsJsonStore> matchJson(String[] term, String[] value, Pageable pageable);
{'term[1]' : {$eq : value[1]} AND 'term[2]' : {$eq : value[2]} AND.....}