На самом деле я сделал то же самое, потому что у меня возникла проблема с преобразованием ObjectId в JSON.
Затем я сделал что-то вроде
@Id
private String id;
public String getId() {
return id();
}
public void setId(String id) {
this.id = id;
}
И все работало нормально, пока я не решил обновить ранее вставленный документ, когда я получил объект по идентификатору, отправил его на страницу через JSON и получил тот же обновленный объект также по почте JSON, а затем использовал функцию сохранения из хранилища данных вместо обновив предыдущие данные, он вставил новый документ вместо обновления того, который уже был.
Хуже того, у нового документа был тот же идентификатор, что и у ранее вставленного, что я считал невозможным.
В любом случае, я установил частный объект как ObjectID и просто оставил набор для получения в виде строки, и тогда он работал, как и ожидалось, не уверен, что это поможет в вашем случае.
@Id
private ObjectId id;
public String getId() {
return id.toString();
}
public void setId(String id) {
this.id = new ObjectId(id);
}
person
Destino
schedule
19.01.2014
id= new ObjectId(str). - person Nic Cottrell   schedule 20.06.2012(new ObjectId).valueOf()вместо(new ObjectId).toString()(изменено в MongoDB версии 2.2). - person Mika Vatanen   schedule 12.09.2015