在 Spring Data MongoDB 存储库中查询集合内的字符串
Querying for a String inside a Set in Spring Data MongodDB repository
我在 class 中设置如下:
@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",编译警告就会消失。但我确实想使用 String 进行查询,而不必创建一个 Set。知道如何解决吗?
方法 findByBars
按字段 bars
生成查询。参数 bar
应与 bars
.
具有相同类型
因为 bars
是一个数组,您应该将您的方法重命名为 findByBarsIn
。用 In spring 可以理解你不是想用精确匹配查询 bars
但 bars
是一个数组,你想用一个查询这个数组单一价值。
我在 class 中设置如下:
@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",编译警告就会消失。但我确实想使用 String 进行查询,而不必创建一个 Set。知道如何解决吗?
方法 findByBars
按字段 bars
生成查询。参数 bar
应与 bars
.
因为 bars
是一个数组,您应该将您的方法重命名为 findByBarsIn
。用 In spring 可以理解你不是想用精确匹配查询 bars
但 bars
是一个数组,你想用一个查询这个数组单一价值。