Как мне хранить HashMaps в mongodb, используя morphia? - PullRequest
0 голосов
/ 18 ноября 2011

Как мне хранить HashMaps в mongodb, используя morphia?

Я не уверен, является ли это ошибкой в ​​morphia, или я просто делаю это неправильно.

говорят, что у меня есть эта модель домена

@Entity("person")
public class Person {
    private String property1;
    private String property2;
    private HashMap<String, Thing> things;
}

, когда я пытаюсь сохранить это с помощью класса, расширяющего BasicDAO repo.save (personInstance), я получаю эту ошибку: (UsedView является эквивалентомВ примере выше)

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.BNonecoder.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.java: 109) ...

Тогда, если я изменил:

"private HashMap<String, Thing> things"

на

"private HashMap<String, String> things"

, это прекрасно спасет.

есть мысли?

высоко ценится!

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

старый вопрос, который я понимаю, но я сталкивался с этим: (не проверено)

"... Это может содержать любые базовые типы, поддерживаемые драйвером MongoDB, включая Списки и Карты, но не сложные объекты, если у вас нетзарегистрированные конвертеры с Morphia (например, morphia.getMapper().getConverters().addConverter(new MyCustomTypeConverter()). "

От: http://www.carfey.com/blog/using-mongodb-with-morphia/

Как сказано: не проверено.

hth.

0 голосов
/ 21 ноября 2011

Отображается ли Thing как морфия? Если нет, то Морфия не будет знать, как сохранить его в монго.

...