使用Java的Google App Engine中的多对多关系
是否可以在Google App Engine中的对象之间建立多对多关系?
我是GAE的新手,还在读它。 编码似乎与我以前常用的Java编码完全不同。 我已经阅读了入门留言簿教程。 那么,我可以从GAE用户那里获得任何帮助/教程/video/知识吗?
谢谢。
关于文档,这是一个很好的起点:
http://code.google.com/appengine/docs/java/overview.html
尊重http://code.google.com/appengine/docs/java/datastore/jdo/relationships.html中的多对多关系:
我们可以通过维护关系两侧的密钥集合来建模多对多关系。 让我们调整一下我们的例子,让Food跟踪那些被认为是最爱的人:
Person.java
import java.util.Set; import com.google.appengine.api.datastore.Key; // ... @Persistent private Set favoriteFoods;
Food.java
import java.util.Set; import com.google.appengine.api.datastore.Key; // ... @Persistent private Set foodFans;
在此示例中,Person维护一组Key值,这些值唯一地标识作为collections夹的Food对象,而Food维护一组Key值,这些值唯一地标识被认为是最喜欢的Person对象。 使用Key值建模多对多时,请注意应用程序有责任维护关系的两个方面:
Album.java
// ... public void addFavoriteFood(Food food) { favoriteFoods.add(food.getKey()); food.getFoodFans().add(getKey()); } public void removeFavoriteFood(Food food) { favoriteFoods.remove(food.getKey()); food.getFoodFans().remove(getKey()); }