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 注释,但无法使其工作
还有其他解决方案吗?这是一个错误还是我做错了什么?
答案 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你的评论有助于解决这个问题:)