Как добавить список сущностей в сущности?(AppEngine Java) - PullRequest
0 голосов
/ 14 января 2011

У меня есть сущность под названием Пользователь. У меня есть еще фильмы о сущностях.

Я бы хотел, чтобы у пользователя был список. Однако у меня есть много исключений с моим кодом. Можете ли вы объяснить мне, как это сделать?

Спасибо

Ответы [ 3 ]

1 голос
/ 17 декабря 2013

Пример отношения между User и Movie может выглядеть примерно так:

Класс пользователя:

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;

}
0 голосов
/ 26 августа 2012

Может быть, все еще интересен: есть другой хороший ответ Stackoverflow , который объясняет это довольно хорошо, используя JDO или JPA.

0 голосов
/ 20 января 2011

В 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

Data.get (user.movie_list) получит все сущности Movie, ключ которых находится в атрибуте data_list

...