1

我有一个带有具体类 Orange 的接口 Fruit。想象一下,水果被嵌入篮子中。我想避免在MongoDB中包含类名,所以我想使用concreteClass,像这样

@Embedded(concreteClass = HashMap<Integer, Orange>>)
private Map<Integer, Fruit> contents;

显然,concreteClass 需要一个类。如上所示,我如何表示我的 HashMap。

4

1 回答 1

1

存储 className 是 Morphia 在从数据库获取数据时实际知道要实例化哪个具体类的机制,如果没有存储 className,我们剩下的唯一机制是为您正在嵌入的类型指定具体类,我认为 Morphia 没有提供任何其他机制来处理这个问题,Morphia 提供的机制应该是存储类名,如本文档某处所述:https ://code.google.com/p/morphia/wiki /UsingInterfaces关于对接口的编程。

如果我们不能这样做:

HashMap<Integer, Orange>

我们似乎陷入了困境:

private Map<Integer, Orange> contents;
于 2013-05-24T15:03:37.560 回答