使用Repository接口通过嵌入对象中的动态属性进行搜索

时间:2014-09-11 09:12:41

标签: spring mongodb spring-data spring-data-mongodb

我正在对包含以下文档的集合使用spring-data-mongodb存储库:

{"_id" : ObjectId("5411619148e28887be66c02b"), "userId" : { "name" : "something", "alias":"asdasdfasfd" }}

以及一些与问题无关的字段。嵌入的userId对象可能只有名称,只有别名或两者。我希望在Repository中有一个方法可以根据输入参数按名称或别名进行搜索。我还没有找到基于名称创建自动查询的方法,所以我尝试使用@Query注释,如下所示:

@Query(value="{'userId.?1': ?2}")
List<User> findUser(String type, String id);

但是类型被插入到带有引号的查询中,因此查询不起作用。有没有办法在不使用两个方法的情况下执行此操作:findByUserIdName和findByUserIdAlias,还是自定义实现?

0 个答案:

没有答案