Morphia Embedded具有泛型的concreteClass Map

时间:2013-05-23 17:48:55

标签: java mongodb generics morphia

我有一个具有混凝土类Orange的界面Fruit。想象一下,水果嵌入篮子里。我想避免在MongoDB中包含类名,所以我想使用concreteClass,就像这样

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

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

1 个答案:

答案 0 :(得分:1)

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

如果我们不能做这样的事情:

HashMap<Integer, Orange>

似乎我们坚持:

private Map<Integer, Orange> contents;