Spring Data Mongo嵌套id无法正常工作

时间:2015-03-02 16:15:56

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

Spring Data是否以不同的方式处理mongo嵌套的“id”属性?我解释了我的问题:我的收集匹配与以下结构

"teams":  [
        {
            "id" : "5601",
            "name" : "FC Basel"
        },
        ... // more
    ]

当我想要检索具有团队ID 5601的所有匹配时,我执行以下查询

db.matches.find({ "teams.id" : "5601"})

完美无缺,并返回一些对象。

当我制作方法时

public List<MatchMongo> findByTeams_id(String id);

在我的MatchRepository界面上,我得到0结果。 日志显示

Created query Query: { "teams.id" : "5601"}, Fields: null, Sort: null

find using query: { "teams.id" : "5601"} fields: null for class: class
MatchMongo in collection: matches

所以他所做的查询似乎是正确的......:S 尝试使用其他字段(例如referee.name)。

我甚至尝试使用 @Query 注释,但无法使其工作

还有其他解决方案吗?这是一个错误还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

哦找到了解决方案:

MatchMongo在{我有

的地方List<TeamMongo> teams;
@Id
private String id;
@Field(value = "id")
private String teamIdAttr;

所以应该调用该方法

public List<MatchMongo> findByTeams_teamIdAttr(String id);

从未想过方法名称应该反映对象属性而不是集合结构

感谢@ martin-baumgartner你的评论有助于解决这个问题:)