如何使用 Morphia 在 mongodb 中存储 Java HashMap<String,Double>?

问题描述 投票:0回答:2

我有一个用户定义的类CostMatrix这个类包含两个属性,两个属性的数据类型都是HashMap。我正在使用 Morphia 与 mongodb 进行通信,所以我的实体类看起来像这样

 @Entity(value = "CostMatrix",noClassnameStored = false)
    public class CostMatrix {
        @Id
        private String id;

        private HashMap<String,Double> distances;

        private HashMap<String,Double> durations;
        public CostMatrix(){}

        public CostMatrix(String id, HashMap<String,Double>distances, HashMap<String,Double>durations) {
            this.id = id;
            this.distances = distances;
            this.durations = durations;
}

我无法将对象正确存储到数据库中对象以任何方式存储,但是当我检索它时只返回 id 和类名,任何想法都将不胜感激。

mongodb morphia
2个回答
0
投票

只需为班级成员添加吸气剂。这与它们是地图无关,它处理地图就像处理对象一样(键是对象属性,值是值)。


-1
投票

如果您不想在您的集合中包含任何类/包名称,只需将 noClassnameStored 标志设置为 true。

@Entity(value = "CostMatrix",noClassnameStored =**true**)

关于保存的部分,你有没有给你的地图填一些值?映射器将忽略空值和空列表。

© www.soinside.com 2019 - 2024. All rights reserved.