小编gre*_*reg的帖子

如何使用存储库接口在Spring Data中通过其嵌套对象的objectId查找集合?

我在MongoDB中有一个包含这样的项目的集合:

{
    "_id" : ObjectId("53e4d31d1f6b66e5163962e3c"),
    "name" : "bob",
    "nestedObject" : {
        "_id" : ObjectId("53f5a623cb5e4c1ed4f6ce67")
        //more fields...
    }
}
Run Code Online (Sandbox Code Playgroud)

此项的Java表示如下所示:

public class SomeObject {
    @Id
    private String id;
    private String name;
    private NestedObject nestedObject;

    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

Repository接口定义如下:

public interface SomeObjectRepository extends MongoRepository<SomeObject, String> {
    public List<SomeObject> findByName(String name);
    public List<SomeObject> findByNestedObjectId(String id);
    //some other find functions
}
Run Code Online (Sandbox Code Playgroud)

现在,findByName(String name)它应该正常工作,但findByNestedObjectId(String id)什么都不返回.

问题是:是否可以使用存储库接口通过嵌套对象的属性查找集合项?如果没有,建议的方法是什么?没有重新实现整个存储库是否可能?

java spring mongodb spring-data-mongodb

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×1

mongodb ×1

spring ×1

spring-data-mongodb ×1