对于以下使用 Spring Data 和 Mongo DB 的实体映射:
@Document(collection = "candidates")
public class Candidate {
private SortedMap<String, ? extends SortedMap<String, List<Expertise>>> expertises;
....
}
从数据库加载实体时,List< Expertise> 变为 List< LinkedHashMap>。如何指定列表中对象的正确类型?
最佳答案
这是我们类型解析算法中的一个错误。我们将外部映射的映射值类型解析为Object
,这会删除所有进一步的泛型信息,因此不会将类型信息写入嵌套文档。这将导致在读取端仅创建Map
。
我已提交 DATACMNS-440为此和 fixed马上。该修复将过渡包含在下周初即将发布的错误修复版本 (Spring Data MongoDB 1.3.4) 中。
不过,我建议您为嵌套数据结构创建专用类型,因为客户端很难真正了解该结构实际代表什么。
关于Java、Spring 数据。列表映射类型的映射实体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730299/