我有一个具有混凝土类Orange的界面Fruit。想象一下,水果嵌入篮子里。我想避免在MongoDB中包含类名,所以我想使用concreteClass,就像这样
@Embedded(concreteClass = HashMap<Integer, Orange>>)
private Map<Integer, Fruit> contents;
concreteClass显然需要一个Class。如何表示我的HashMap,如上所示。
答案 0 :(得分:1)
存储className是Morphia用来实际知道从数据库获取数据时要实例化的具体类的机制,如果没有存储className,我们剩下的唯一机制是指定类型的具体类你是嵌入式的,我不认为Morphia提供任何其他机制来处理这个问题,Morphia提供的机制应该存储className,如本文档中所述:https://code.google.com/p/morphia/wiki/UsingInterfaces关于编程接口。
如果我们不能做这样的事情:
HashMap<Integer, Orange>
似乎我们坚持:
private Map<Integer, Orange> contents;