Morphia:将 DBObject 转换为实体

Morphia: Translating DBObject to Entity

我正在尝试使用 here 中所述的 Morphia 库从 MongoDB 检索 Java 对象。这需要指定实体class;但是,我将遍历集合列表,并希望能够任意将 DBObjects 转换为它们各自的 Java 对象。

Morphia 将 Java 关联存储在 className 字段中,那么有没有办法利用它,以便我没有明确定义实体 class?

泛型是你的朋友。您的实体应该继承自基础实体。然后你可以像这样的通用查询:

public <E extends BaseEntity> ObjectId persist(E entity) {
  mongoDatastore.save(entity);
  return entity.getId();
}

有关完整代码示例,请查看:https://github.com/xeraa/morphia-demo/blob/master/src/main/java/net/xeraa/morphia_demo/entities/BaseEntity.java