spring data mongo repository方法返回特定的文档属性列表

时间:2014-04-03 17:36:32

标签: spring-data spring-data-mongodb

使用mongodb的spring数据,如何指定存储库方法的返回类型以包含文档中的特定属性? 例如:

@Document (collection = "foo")
class Foo {
   String id
   String name
   ... many more attributes
}

存储库:

interface FooRepository extends MongoRepository<Foo, String> {
   @Query { value = "{}", fields = "{'name' : 1}" }
   List<String> findAllNames()
}

以上findAllNames按预期工作,只从文档中获取name属性。但是,spring数据返回的对象是string对象的Foo表示,它具有id和name属性,其值和剩余属性为null。 我需要获取代表名称的Foo而不是List<String>个对象。

1 个答案:

答案 0 :(得分:1)

截至目前,我使用自定义界面来实现此目的。将findAllNames()方法从Spring数据存储库接口移动到我的自定义接口

interface FooRepositoryCustom {
    List<String> findAllNames()
}
interface FooRepository extends MongoRepository<Foo, String>, FooRepositoryCustom {
}

@Component
class FooRepositoryImpl implements FooRepositoryCustom {
   @Autowired
   MongoOperations mongoOperations;

  List<String> findAllNames() {
    //using mongoOperations create the query and execute. Return the property values from document
 }
}