2011-01-13 10 views

Antwort

-2

Es gibt keine Referenzliste Eigenschaft in appengine. Dennoch können Sie db.ListProperty (db.Key) verwenden, das eine Liste der Schlüssel aller Entitäten speichert.

Modelle:

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

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

Ansichten:

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

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

/// Hier movie_list speichert die Schlüssel der Entität Daten

Data.get (user.movie_list) erhalten alle Film Entitäten, deren Schlüssel im Attribut data_list enthalten sind

+2

AppEngine * Java * – jamie

1

Ein Beispiel für die Beziehung zwischen User und Movie kann wie folgt aussehen sometling:

Benutzerklasse:

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()); 
    } 
} 

Movie-Klasse.

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

public class Movie { 

    @Persistent 
    private Set<Key> owners; 

}