Краткое описание:
У меня проблемы с чтением документа из базы данных mon go в класс java со свойством generi c. Ошибка говорит java.lang.Double cannot be cast to com.mongodb.DBObject
Длинное описание:
У меня есть java class / mongoDb-Collection с именем RandomDataCollection
, который имеет свойства типа MyGenericProperty<T>
@Getter @Setter @NoArgsConstructor @Entity("randomDataCollection")
public class RandomDataCollection {
@Id
private ObjectId id = new ObjectId();
private String name;
@Embedded
private MyGenericProperty<Float> temperatureMumbai;
}
MyGenericProperty<T>
выглядит так
@Getter @Setter @NoArgsConstructor
public class MyGenericProperty<T> {
private T value;
private String unit;
}
Запись в БД работает как положено ...
MyGenericProperty<Float> temperatureMumbai = new MyGenericProperty<Float>();
temperatureMumbai.setValue(32.8f);
temperatureMumbai.setUnit("°C");
RandomDataCollection randomData = new RandomDataCollection();
randomData.setName("RandomData0711");
randomData.setTemperatureMumbai(temperatureMumbai);
Datastore datastore = getDatastore();
datastore.save(randomData);
... но когда я пытаюсь читать из БД ...
randomData = datastore.find(RandomDataCollection.class).filter("name =", "RandomData0711").get();
... Я получаю следующее исключение:
Caused by: java.lang.ClassCastException: java.lang.Double cannot be cast to com.mongodb.DBObject
Я нашел некоторые обсуждения дженериков и морфий, но, честно говоря, я не сделал не знаю, как применить это к моей проблеме.
Я использую Morphia 1.5.8