Как хранить HashMaps в mongodb с помощью morphia?
Я не уверен, что это ошибка в морфии, или я просто делаю это неправильно.
скажем, у меня есть эта модель домена
@Entity("person")
public class Person {
private String property1;
private String property2;
private HashMap<String, Thing> things;
}
когда я пытаюсь сохранить это, используя класс, который расширяет репозиторий BasicDAO.save(personInstance), я получаю эту ошибку: (UsedView эквивалентен Thing в приведенном выше примере)
java.lang.IllegalArgumentException: невозможно сериализовать класс com.model.designed.UsedView в org.bson.BSONEncoder._putObjectField(BSONEncoder.java:205) в org.bson.BSONEncoder.putMap(BSONEncoder.java:245) в org. .bson.BSONEncoder._putObjectField(BSONEncoder.java:177) в org.bson.BSONEncoder.putObject(BSONEncoder.java:121) в org.bson.BSONEncoder.putObject(BSONEncoder.java:67) в com.mongodb.OutMessage. putObject(OutMessage.java:189) в com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:245) в com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:209) в com.mongodb.DBCollection.insert (DBCollection.java:66) в com.mongodb.DBCollection.save(DBCollection.java:622) в com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:731) в com.google.code.morphia. DatastoreImpl.save(DatastoreImpl.java:793) в com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:787) в com.google.code.morphia.dao.BasicDAO.save(BasicDAO.ja ва:109)...
Тогда, если я изменил:
"private HashMap<String, Thing> things"
to
"private HashMap<String, String> things"
он нормально сохраняет.
Какие-нибудь мысли?
очень признателен!