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注释,但无法让它工作
还有其他解决办法吗?这是一个错误还是我做错了什么?
最佳答案
哦找到了解决方案:
MatchMongo 有 List<TeamMongo> teams;
关于我在哪里
@Id
private String id;
@Field(value = "id")
private String teamIdAttr;
所以应该调用该方法
public List<MatchMongo> findByTeams_teamIdAttr(String id);
从未想过方法名称应该反射(reflect)对象属性而不是集合结构
感谢@martin-baumgartner,您的评论有助于解决这个问题:)
关于Spring Data Mongo 嵌套 id 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814449/