Java 使用ObjectId的字符串表示形式搜索mongo文档

Java 使用ObjectId的字符串表示形式搜索mongo文档,java,mongodb,morphia,Java,Mongodb,Morphia,我试图从使用Morphia的java类中使用id(ObjectId)的字符串表示返回文档。我怎样才能做到这一点?下面的代码片段说明了该问题 @Override public List<SmsReply> getReplies() { List<SmsReply> replies = smsProvider.getSmsReplies(); for(SmsReply reply: replies){ System.out.printl

我试图从使用Morphia的java类中使用id(ObjectId)的字符串表示返回文档。我怎样才能做到这一点?下面的代码片段说明了该问题

    @Override
public List<SmsReply> getReplies() {
    List<SmsReply> replies = smsProvider.getSmsReplies();
    for(SmsReply reply: replies){
        System.out.println(reply);
        Sms sms = datastore.find(Sms.class, "_id", reply.getExternalMessageId()).get();
        sms.getSmsReplies().add(reply);
        datastore.save(sms);
    }

    return smsProvider.getSmsReplies();
}
@覆盖
公共列表getReplies(){
列表回复=smsProvider.getSmsReplies();
对于(SmsReply回复:回复){
System.out.println(回复);
Sms=datastore.find(Sms.class,“_id”,reply.getExternalMessageId()).get();
sms.getSmsReplies().add(reply);
数据存储。保存(sms);
}
返回smsProvider.getSmsReplies();
}
SmsReply类具有它需要查找的Sms文档的ObjectId(externalMessageId)的字符串表示形式


感谢您的帮助。

如果_id是mongo中的ObjectId,您可以使用ObjectId:new ObjectId(reply.getExternalMessageId())上的字符串构造函数在java中创建ObjectId实例