这是我收到的错误java.lang.ClassCastException:java.lang.Integer无法强制转换为com.mongodb.DBObject
这是我的POJO
@Entity("cars")
@Getter
@Setter
public class Car {
@Id
private ObjectId id;
private String defaultChoice;
private Object input;
}
我能够使用带有json的morphia将此保存在mongo的汽车收藏中
{
"defaultChoice": "sampleChoice",
"input": 432
}
在mongo中,字段输入以类型int32
保存当我尝试使用morphia检索数据时发生异常。它无法使用Object作为类型映射/反序列化字段。我尝试将其更改为Integer input
。它奏效了。我想尝试将此字段保留为对象(如果可能)
有没有办法解决这个问题?可以写一个自定义映射器吗?
答案 0 :(得分:0)
MongoDB最佳实践是对集合中的同一字段使用相同的字段类型。所以Morphia的设计就是采用这种方法。正如其他人所说,你应该在这个字段中使用Integer,但请注意你可以将其他java类作为子文档嵌入Morphia。