Spring 数据 Mongo 嵌套 ID 无效
Spring Data Mongo nested id won't work
Spring 数据是否以不同方式处理 mongo 嵌套的 "id" 属性?我解释一下我的问题:我有集合 matches 具有以下结构
"teams": [
{
"id" : "5601",
"name" : "FC Basel"
},
... // more
]
当我想检索团队 ID 为 5601 的所有比赛时,我执行以下查询
db.matches.find({ "teams.id" : "5601"})
效果很好,returns 一些对象。
当我做一个方法时
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);
没想到方法名应该反映对象属性而不是集合结构
感谢@martin-baumgartner,您的评论有助于解决此问题:)
Spring 数据是否以不同方式处理 mongo 嵌套的 "id" 属性?我解释一下我的问题:我有集合 matches 具有以下结构
"teams": [
{
"id" : "5601",
"name" : "FC Basel"
},
... // more
]
当我想检索团队 ID 为 5601 的所有比赛时,我执行以下查询
db.matches.find({ "teams.id" : "5601"})
效果很好,returns 一些对象。
当我做一个方法时
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);
没想到方法名应该反映对象属性而不是集合结构
感谢@martin-baumgartner,您的评论有助于解决此问题:)