Я использую Objectify в качестве слоя доступа к данным в моем размещенном приложении GoogleAppEngine.
Проблема возникает, когда я пытаюсь сохранить карту. Мой боб выглядит так:
@Entity
@Cached
class MyBean{
@Id
private Long id;
@Embedded
Map<String, String> parameters = new HashMap<String, String>();
public MyBean(){}
//getters and setters below
}
Прежде всего, обратите внимание, что «параметры» карты не являются частными, она выдает исключение JRE.
При сохранении карты все идет хорошо. При получении его из хранилища данных происходит сбой.
Мой обходной путь - использовать аннотацию @Serialized. Это всего лишь обходной путь, поскольку я хочу использовать функцию expando хранилища данных GAE.
В соответствии с объективировать документ Я делаю правильные операции.
Сведения об исключении:
Вызвано: java.lang.NullPointerException at
com.googlecode.objectify.impl.Transmog.loadSingleValue (Transmog.java:364)
в
com.googlecode.objectify.impl.load.EmbeddedMapSetter.safeSet (EmbeddedMapSetter.java:65)
в
com.googlecode.objectify.impl.load.CollisionDetectingSetter.set (CollisionDetectingSetter.java:37)
в
com.googlecode.objectify.impl.Transmog.loadSingleValue (Transmog.java:359)
на com.googlecode.objectify.impl.Transmog.load (Transmog.java:340) на
com.googlecode.objectify.impl.ConcreteEntityMetadata.toObject (ConcreteEntityMetadata.java:203)
в
com.googlecode.objectify.impl.QueryImpl $ ToObjectIterator.translate (QueryImpl.java:668)
в
com.googlecode.objectify.impl.QueryImpl $ ToObjectIterator.translate (QueryImpl.java:657)
в
com.googlecode.objectify.util.TranslatingIterator.next (TranslatingIterator.java:35)