morphiaを使用してmongodbにHashMapを保存するにはどうすればよいですか?
これが morphia のバグなのか、それとも私のやり方が間違っているだけなのかはわかりません。
私はこのドメインモデルを持っていると言います
@Entity("person")
public class Person {
private String property1;
private String property2;
private HashMap<String, Thing> things;
}
BasicDAO repo.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.dao.BasicDAO.save(BasicDAO.java:109) で com.google.code.morphia.DatastoreImpl.save(DatastoreImpl.java:787)...
次に、変更した場合:
"private HashMap<String, Thing> things"
に
"private HashMap<String, String> things"
それはうまく保存されます。
何かご意見は?
とても有難い!