使用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>
个对象。
答案 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
}
}