У меня есть два класса в отношениях один-ко-многим. Родителем является Map, а дочерним - POI (точка интереса). Я пытаюсь добавить POI к существующей карте, но я получаю исключение, когда пытаюсь сохранить свои изменения. Вот два класса:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Map {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
@Persistent(mappedBy = "map")
private List<Poi> pois;
public List<Poi> getPois() {
return pois;
}
}
@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Poi {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private Map map;
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
}
А вот как я пытаюсь их использовать:
PersistenceManager pm = PMF.get().getPersistenceManager();
// create a new POI
Poi poi = new Poi();
// find the Map by its ID
Map map = pm.getObjectById(Map.class, Long.decode(mapId));
// add the POI to the map
map.getPois().add(poi);
// persist!
pm.makePersistent(map);
pm.close();
Строка "map.getPois (). Add (poi);" генерирует исключение, говорящее «java.lang.ClassCastException: java.lang.Long», но не говорит мне, почему. Если я переключу его на "poi.SetMap (map);" это просто молча терпит неудачу. Нет сообщения об ошибке и ничего не происходит.
Кто-нибудь знает, как правильно обрабатывать отношения один-ко-многим в App Engine? Кто-нибудь знает какие-нибудь хорошие ресурсы? Документация Google была слегка полезна, но ее действительно не хватает.