productChanges
集合中的文档如下所示。
{
"_id" : NumberLong(9780876590034),
"isbn" : NumberLong(9780876590034),
"updDtime" : ISODate("2016-06-08T14:02:29.044Z"),
"Audit" : {
"LastProcCntrlNo" : 100192211,
"UpdDtime" : ISODate("2016-06-08T14:02:29.044Z"),
"AddDtime" : ISODate("2016-06-08T14:02:29.044Z")
}
}
我有ProductChanges.java
班
public class ProductChanges {
Long isbn;
Date updDtime;
Audit audit;
// getters & setters
}
我使用mongoTemplate
来查询数据库,但我无法填充Audit
个对象。
// query the DB
List<ProductChanges> productChanges = mongoTemplate.find(query, ProductChanges.class, "productChanges");
这应该是直截了当的。我需要注释我的Audit
对象吗?我错过了一些微不足道的事情吗?
Spring Data MongoDB文档没有帮助找到这个问题的答案。
答案 0 :(得分:1)
基于Spring Data MongoDB documentation:
短Java类名称按以下方式映射到集合名称。课程
accessibilityLabel
会映射到com.bigbank.SavingsAccount
集合名称。对象的字段用于转换为和中的字段 文献。不使用公共JavaBean属性。
由于您的子文档字段名为savingsAccount
且Java字段名称为Audit
,因此Spring Data无法按预期填充audit
字段。
要解决此问题,您应该将字段重命名为audit
:
Audit
或使用public class ProductChanges {
Long isbn;
Date updDtime;
Audit Audit; // renamed to Audit from audit
// getters & setters
}
注释:
@Field
您可以阅读有关映射注释here的更多信息。并提出建议,尝试使用一致的命名约定。