如何在哈希映射对象上使用Play-Morphia使用find()或filter()?

时间:2013-03-17 16:14:15

标签: java mongodb playframework morphia

我正在使用Play框架和Play-Morphia在Java中使用MongoDb。 我得到了一个实体消息,其定义如下:

@Entity
public class Message{
    public String senderId;
    public Date date;
    public String initiatorId;
    @Embedded public MessageBasicInfo basicInfo;
}

MessageBasicInfo定义如下:

public class MessageBasicInfo implements IModel{
    public HashMap<String, Boolean> recipients;
}

现在,我想从Mongo中检索它们在收件人的hashmap中的值为true的消息。 我知道如何在列表中执行此操作但不知道如何使用hashmap对象执行此操作。 我会感激任何建议。 感谢。

1 个答案:

答案 0 :(得分:0)

HashMap很难查询。我建议您将MessageBasicInfo重新整理为

public class MessageBasicInfo implements IModel {
   public String key;
   public Boolean value;
}

然后您可以通过以下方式查询所有true值消息:

Message.q("basicInfo.value", true).asList();