私は、所有されている1対多の関係で2つのクラスを持っています。親はMapで、子はPOI(関心地点)です。 POIを既存のMapに追加しようとしていますが、変更を維持しようとすると例外が発生します。 "(POI)を追加map.getPois();"App Engineで親オブジェクトに子オブジェクトを追加するにはどうすればよいですか?
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();
ライン:
@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;
}
}
そして、ここでは、私はそれらを使用しようとしています方法です。ここでは、2つのクラスであります「java.lang.ClassCastException:java.lang.Long」という例外をスローしますが、なぜそれを伝えません。私がそれを "poi.SetMap(map);"それはただ静かに失敗します。エラーメッセージはなく、何も起こりません。
App Engineで1対多の関係を正しく処理する方法を知っている人はいますか?誰も良い資源を知っていますか? Google's documentationは少し役に立っていますが、本当に欠けています。
SDKの最新バージョンへのアップデートは完全に機能しました!ちょうど数週間前から私は1.2.1にいました。それは私を永遠に理解してくれたでしょう。 – dnorcott