En fait, j'ai fait la même chose parce que j'avais un problème pour convertir l'ObjectId en JSON.
J'ai ensuite fait quelque chose comme
@Id
private String id;
public String getId() {
return id();
}
public void setId(String id) {
this.id = id;
}
Et tout a bien fonctionné jusqu'à ce que je décide de mettre à jour un document précédemment inséré, lorsque j'ai obtenu l'objet par Id, je l'ai envoyé à la page via JSON et j'ai reçu le même objet mis à jour également par post JSON et ensuite j'ai utilisé la fonction de sauvegarde du Datastore, au lieu de mettre à jour les données précédentes, il a inséré un nouveau document au lieu de mettre à jour celui qui était déjà.
Pire encore, le nouveau document avait le même ID que le document précédemment inséré, ce qui me semblait impossible.
Quoi qu'il en soit, j'ai configuré l'objet privé en tant qu'ObjectID et j'ai laissé le paramètre get set en tant que chaîne de caractères et cela a fonctionné comme prévu, mais je ne suis pas sûr que cela vous aide dans votre cas.
@Id
private ObjectId id;
public String getId() {
return id.toString();
}
public void setId(String id) {
this.id = new ObjectId(id);
}