如何在实体中添加实体列表? (AppEngine Java)

时间:2011-01-13 22:46:54

标签: java google-app-engine entity entities

我有一个名为User的实体。 我有另一部实体电影。

我希望用户有一个列表。 但是我的代码有很多异常。 你能解释一下如何做到这一点吗?

谢谢

3 个答案:

答案 0 :(得分:1)

UserMovie之间的关系示例可能看起来像这样:

用户类:

import java.util.Set;
import com.google.appengine.api.datastore.Key;

public class User {

    @Persistent
    private Set<Key> ownsMovies;

    public void addMovie(Movie movie) {
        // We remember to maintain the relation both ways.
        ownsMovies.add(movie.getKey());
        movie.getOwners().add(getKey());
    }

    public void removeMovie(Movie movie) {
        // We remember to maintain the relation both ways.
        ownsMovies.remove(movie.getKey());
        movie.getOwners().remove(getKey());
    }
}

电影课。

import java.util.Set;
import com.google.appengine.api.datastore.Key;

public class Movie {

    @Persistent
    private Set<Key> owners;

}

答案 1 :(得分:0)

也许仍有兴趣:有another nice Stackoverflow answer使用JDO或JPA来解释这个很好。

答案 2 :(得分:-2)

appengine中没有引用列表属性。您仍然可以使用db.ListProperty(db.Key)来存储任何实体密钥的列表。

模型:

 class User(db.Model):
   movie_list=db.ListProperty(db.Key)

 class Movie(db.Model):
   name=db.StringProperty()

的观点:

  user=User()
  movies=Movie.gql("")#The Movie entities you want to fetch

  for movie in movies:
      user.movie_list.append(data)

///这里movie_list存储数据实体的键

Data.get(user.movi​​e_list)将获取其密钥位于data_list属性中的所有Movie实体

相关问题