Java Springdata MongoDB推送位置未设置类
我试图弄明白为什么在位置插入删除Java Springdata MongoDB推送位置未设置类,java,mongodb,spring-data,Java,Mongodb,Spring Data,我试图弄明白为什么在位置插入删除\u类使我的查找失败 我有一个目标: 历史记录 字段1 字段2 我有一些子对象,如: SimpleHistoryItem扩展了HistoryItem 字段3 然后我的课堂上的文件 @Document(collection = "history") public class PersonnalHistory { /** * The ID correspond to the profile ID */ @Id pr
\u类
使我的查找失败
我有一个目标:
历史记录
- 字段1
- 字段2
- 字段3
@Document(collection = "history")
public class PersonnalHistory {
/**
* The ID correspond to the profile ID
*/
@Id
private String id;
private List<HistoryItem> items;
public String getProfileID() {
return id;
}
public void setProfileID(String profileID) {
this.id = profileID;
}
public List<HistoryItem> getItems() {
return items;
}
public void setItems(List<HistoryItem> items) {
this.items = items;
}
}
添加了\u类
对象。因此,当我做一个查找时,Mongo能够绘制地图。我可以找到类似于:
"_id" : ObjectId("5856cec14781686ceeb34024"),
"_class" : "com.bdproject.model.history.PersonnalHistory",
"items" : [
{
"_class" : "com.bdproject.model.history.SimpleHistoryItem",
"profileID" : "5856dcf347816870aab76137",
"date" : ISODate("2017-01-08T09:20:27.363Z"),
},
由于要检索最近的历史记录项,我需要执行以下操作:
update.push(ITEMS).atPosition(0).each(item);
但是,当我执行此操作时,\u类
消失,使我的显示出现故障。
我试图通过输入HistoryItem来检查系统:
private String _class;
public HistoryItem(Date date, HistoryItemType type){
this.date = date;
this.type = type;
this._class = this.getClass().getCanonicalName();
}
但是\u class
只是被忽略而没有设置:(
我还试着做:
update.push(ITEMS).atPosition(0).value(item);
但价值最终会增加。
你可能有什么想法吗?我一直在看罚单。我想一个解决办法是获取所有项目,用java添加/更新新项目,删除该文档的所有项目,并推送所有项目。这正是我不想做的。如果我有数千个项目,那么最终会非常昂贵。我想在展示时这样做,但现实是这样的太贵了。
update.push(ITEMS).atPosition(0).value(item);