我试图使用Morphia库从MongoDB中检索Java对象,如here所述。这要求指定实体类;但是,我将在一个集合列表上进行迭代,并希望能够将DBObjects任意转换为各自的Java对象。
Morphia将Java关联存储在className
字段中,那么有没有办法利用它,以便我没有明确定义实体类?
答案 0 :(得分:1)
泛型是你的朋友。您的实体应从基础实体继承。然后你可以通用查询,例如:
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