java - 在 Spring Data MongodB 存储库中查询集合内的字符串

标签 java spring annotations spring-data spring-data-mongodb

我在类中设置如下:

@Document(collection="Foo")
public class Foo {

   @Id
   String id;

   @Indexed 
   Set<String> bars = new HashSet<String>();
}

然后我有以下存储库:

public interface FooRepository  extends PagingAndSortingRepository<Foo, String>{

   public List<Foo> findByBars(String bar);

}

代码工作正常(我拥有的所有 Junits 都可以工作),但不幸的是,我收到编译警告:

FooRepository.java Parameter type (String) does not match domain class property definition (Set). Unknown Spring Data Problem

如果我将参数从“String bar”更改为“Set< String> bar”,编译警告就会消失。但我确实想用字符串进行查询,而不必创建一个集合。知道如何解决吗?

最佳答案

由于 bars 是一个数组,因此您应该将方法重命名为 findByBarsIn。使用 In spring 可以理解您并不是在尝试查询具有完全匹配的 bars ,但是 bars 是一个数组,并且您希望使用单个查询来查询该数组值(value)。

关于java - 在 Spring Data MongodB 存储库中查询集合内的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47301562/

相关文章:

java - 带有@IdClass注释的类中的可插入对象

java - Java 和 Groovy 的正则表达式引擎是一样的吗?

java - GWT UiBinder - 将新对象分配给 UiField 引用

java - GET 方法请求适用于所有其他类型的请求

java - token 编码/解码问题 - Spring

Python 类型注解 : Any way to annotate a property?

java - Spring Security 中基于角色的访问拒绝处理 - 如何?

java - 如何从java中的ENUM中随机选择两个字符串之间的字符串?

java - org.springframework.beans.factory.NoSuchBeanDefinitionException : No unique bean of type [org.quartz.JobDetail]已定义

java - 静态函数中@Value注解的替代方法